数字图像处理实验班级:05611002 报学号:1120101383告姓名:张欣数字图像的运算1.1 直方图一.实验目的1.熟悉matlab图像处理工具箱及直方图函数的使用;2.理解和掌握直方图原理和方法;二.实验设备:1.PC机一台;2.软件matlab。
三.程序设计在matlab环境中,程序首先读取图像,然后调用直方图函数,设置相关参数,再输出处理后的图像。
I=imread('cameraman.tif');%读取图像subplot(1,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(1,2,2),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab自带的图像,如:cameraman图像;再调用相应的直方图函数,设置参数;最后输出处理后的图像;3.浏览源程序并理解含义;4.运行,观察显示结果;5.结束运行,退出;五.实验结果:观察图像matlab环境下的直方图分布。
(a)原始图像 (b)原始图像直方图六.实验报告要求1、给出实验原理过程及实现代码:I=imread('coins.png');%读取图像subplot(1,2,1),imshow(I) %输出图像title('原始图像') %在原始图像中加标题subplot(1,2,2),imhist(I) %输出原图直方图title('原始图像直方图') %在原图直方图上加标题2、输入一幅灰度图像,给出其灰度直方图结果,并进行灰度直方图分布原理分析。
1.2 3*3均值滤波一.实验目的1.熟悉matlab图像处理工具箱及均值滤波函数的使用;2.理解和掌握3*3均值滤波的方法和应用;二.实验设备:1.PC机一台;2.软件matlab三.程序设计在matlab环境中,程序首先读取图像,然后调用图像增强(均值滤波)函数,设置相关参数,再输出处理后的图像。
I = imread('cameraman.tif');figure,imshow(I);J=filter2(fspecial(‘average’,3),I)/255;figure,imshow(J);四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab自带的图像,如:cameraman图像;再调用相应的图像增强(均值滤波)函数,设置参数;最后输出处理后的图像;3.浏览源程序并理解含义;4.运行,观察显示结果;5.结束运行,退出;五.实验结果:观察matlab环境下原始图像经3*3均值滤波处理后的结果。
(a)原始图像 (b)3*3均值滤波处理后的图像六.实验报告要求输入一幅灰度图像,给出其图像经3*3均值滤波处理后的结果,然后对每一点的灰度值和它周围24个点,一共25个点的灰度值进行均值滤波,看看对25个点取均值与对9个点取中值进行均值滤波有什么区别?有没有其他的算法可以改进滤波效果。
(a)原始图像 (b)3*3均值滤波处理后的图像1.3 3*3中值滤波一.实验目的1.熟悉matlab 图像处理工具箱及中值滤波函数的使用; 2.理解和掌握中值滤波的方法和应用;二.实验设备:1.PC 机一台;2.软件matlab 三.程序设计在matlab 环境中,程序首先读取图像,然后调用图像增强(中值滤波)函数,设置相关参数,再输出处理后的图像。
I = imread('cameraman.tif'); figure,imshow(I); J=medfilt2(I,[5,5]); figure,imshow(J);四.实验步骤1. 启动matlab双击桌面matlab 图标启动matlab 环境;2. 在matlab 命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab 自带的图像,如:cameraman 图像;再调用相应的图像增强(中值滤波)函数,设置参数;最后输出处理后的图像; 3.浏览源程序并理解含义;4.运行,观察显示结果;5.结束运行,退出;五.实验结果观察matlab环境下原始图像经3*3中值滤波处理后的结果。
(a)原始图像 (b)3*3中值滤波处理后的图像六.实验报告要求输入一幅灰度图像,给出其图像经3*3中值滤波处理后的结果,然后对每一点的灰度值和它周围24个点,一共25个点的灰度值进行排序后取中值,然后该点的灰度值取中值。
看看对25个点取中值与对9个点取中值进行中值滤波有什么区别?(a)原始图像 (b)3*3中值滤波处理后的图像1.4 图像的缩放一.实验目的1.熟悉matlab图像处理工具箱及图像缩放函数的使用;2.掌握图像缩放的方法和应用;二.实验设备:1.PC机一台;2.软件matlab三.程序设计在matlab环境中,程序首先读取图像,然后调用图像缩放函数,设置相关参数,再输出处理后的图像。
I = imread('cameraman.tif');figure,imshow(I);scale = 0.5;J = imresize(I,scale);figure,imshow(J);四.实验步骤1. 启动matlab双击桌面matlab图标启动matlab环境;2. 在matlab命令窗口中输入相应程序。
书写程序时,首先读取图像,一般调用matlab自带的图像,如:cameraman图像;再调用相应的图像缩放函数,设置参数;最后输出处理后的图像;3.浏览源程序并理解含义;4.运行,观察显示结果;5.结束运行,退出;五.实验结果观察matlab环境下图像缩放后的结果。
(a)原始图像 (b)缩放后的图像六.实验报告要求输入一幅灰度图像,给出其图像缩放后的结果,然后改变缩放比率,观察图像缩放后结果柄进行分析。
(a)原始图像 (b)缩放后的图像数字图像的离散余弦变换一.实验目的1.验证二维傅里叶变换的平移性和旋转不变性;2.实现图像频域滤波,加深对频域图像增强的理解;二.实验设备1.PC机一台;2.软件matlab;三.实验内容及步骤(1)产生如图3.1所示图像),(1y x f (128×128大小,暗处=0,亮处=255),用MA TLAB中的fft2函数对其进行FFT :① 同屏显示原图1f 和)(FFT 1f 的幅度谱图;② 若令),()1(),(12y x f y x f yx +-=,重复以上过程,比较二者幅度谱的异同,简述理由;③ 若将),(2y x f 顺时针旋转45度得到),(3y x f ,试显示)(FFT3f 的幅度谱,并与)(FFT 2f 的幅度谱进行比较。
1.%生成图形f1f1=zeros(128,128);f1((64-30):(63+30),(64-10):(63+10))=1; %FFT 变换fft_f1=log(1+abs(fftshift(fft2(f1)))); figure;subplot(121);imshow(f1);title('Image f1');subplot(122);imshow(fft_f1,[]);title('FFT f1');2.%计算f2f2=zeros(128,128); for i=1:128; for j=1:128;f2(i,j)=((-1)^(i+j))*f1(i,j); end endfft_f2A=log(1+abs(fft2(f2)));图3.1 实验图象f 1(x , y )fft_f2B=log(1+abs(fftshift(fft2(f2)))); figure;subplot(131);imshow(f2);title('Image f2');subplot(132);imshow(fft_f2B,[]);title('FFT f2');subplot(133);imshow(fft_f2A,[]);title('FFT f2 Without FFTShift');分析:根据傅里叶变换对的平移性质:),(),(00)//(200v v u u F ey x f N y v M x u j --⇔+π; 当2/0M u =且2/0N v =时,有:yx y x j N y v M x u j e e+++-==)1()()//(200ππ因此可得到:)2/,2/()1)(,(N v M u F y x f yx --⇔-+所以,)),(FFT(2y x f 就是)),((FFT1y x f 频谱中心化后的结果。
3.%计算f3f3=imrotate(f2,-45,'nearest');fft_f3=log(1+abs(fftshift(fft2(f3)))); figure;subplot(121);imshow(f3);title('Image f3');subplot(122);imshow(fft_f3,[]);title('FFT f3');(2)对如图3.2所示的数字图像lena.img (256×256大小、256级灰度)进行频域的理想低通、高通滤波,同屏显示原图、幅度谱图和低通、高通滤波的结果图。
低通滤波:fid=fopen('D:\matlab7\image\lena.img','r'); data=(fread(fid,[256,256],'uint8'))'; subplot(1,2,1)图3.2 实验图象lena.imgimagesc(data);colormap(gray);title('LENA','Color','r');fft_lena=fft2(data);f=fftshift(fft_lena);for i=1:256for j=1:256if sqrt((i-128)^2+(j-128)^2)>30f(i,j)=0;endendendsubplot(1,2,2);[x,y]=meshgrid(1:1:256);surf(x,y,f)高通滤波:fid=fopen('D:\matlab7\image\lena.img','r'); data=(fread(fid,[256,256],'uint8'))'; subplot(1,2,1)imagesc(data);colormap(gray);title('LENA','Color','r');fft_lena=fft2(data);for i=1:256for j=1:256if sqrt((i-128)^2+(j-128)^2)<2f(i,j)=0;endendsubplot(1,2,2);[x,y]=meshgrid(1:1:256);surf(x,y,f)基于直方图均衡化的图像增强一.实验目的1.了解空间域图像增强的各种方法(点处理、掩模处理); 2.掌握采用直方图均衡化进行图像增强的方法;3. 使用邻域平均法编写程序实现图像增强,进一步掌握掩模法及其改进(加门限法)消除噪声的原理;二.实验设备1.PC 机一台;2.软件matlab ;三.实验内容及步骤对如图3.1所示的两幅128×128、256级灰度的数字图像fing_128.img 和cell_128.img 进行如下处理:(1)对原图像进行直方图均衡化处理,同屏显示处理前后图像及其直方图,比较异同,并回答为什么数字图像均衡化后其直方图并非完全均匀分布。