1、09CK数字图像处理实验报告二msl数字图像处理实验报告二2011/12/10测控0901林杰实验2 图像平滑实验一、实验目的 1通过实验掌握图像去噪的基本方法;2学会根据情况选用不同方法。二、实验的硬件、软件平台硬件:计算机软件:操作系统:WINDOWS 7应用软件:MATLAB三、实验内容及要求1实验内容请在如下面方法中选择多个,完成图像去噪操作,并进行分析、比较。(1)对静态场景的多幅图片取平均;(2)空间域模板卷积(不同模板、不同尺寸);(3)频域低通滤波器(不同滤波器模型、不同截止频率);(4)中值滤波方法。2实验要求(1)图片可根据需要选取;(2)对不同方法和同一方法的不同参数的实
2、验结果进行分析和比较,如空间域卷积模板可有高斯型模板、矩形模板、三角形模板和自己根据需求设计的模板等;模板大小可以是33,55,77或更大。频域滤波可采用矩形或巴特沃斯等低通滤波器模型,截止频率也是可选的。(3)分析比较不同方法的结果。四、思考题1不同空间域卷积器模板的滤波效果有何不同?2空间域卷积器模板的大小的滤波效果有何影响?3用多幅图像代数平均的方法去噪对图像有何要求?4不同频域滤波器的效果有何不同?五、实验报告要求1列出程序清单并进行功能注释;2说明不同方法去噪效果;3对去噪方法进行详细分析对比。*对静态场景的多幅图片取平均*实验代码如下clcclear all a1=imread(l
3、enna_noise1.bmp);%读入图片 a2=imread(lenna_noise2.bmp); a3=imread(lenna_noise3.bmp); a4=imread(lenna_noise4.bmp); a5=imread(lenna_noise5.bmp); a6=imread(lenna_noise6.bmp); a7=imread(lenna_noise7.bmp); a8=imread(lenna_noise8.bmp); b1=double(a1)/255;%变换图像数据类型 b2=double(a2)/255; b3=double(a3)/255; b4=doubl
4、e(a4)/255; b5=double(a5)/255; b6=double(a6)/255; b7=double(a7)/255; b8=double(a8)/255; c=(b1+b2+b3+b4+b5+b6+b7+b8)/8;%八幅图取平均 subplot(331),imshow(a1);%三行三列,显示图像1-8 subplot(332),imshow(a2); subplot(333),imshow(a3); subplot(334),imshow(a4); subplot(335),imshow(a5); subplot(336),imshow(a6); subplot(337)
5、,imshow(a7); subplot(338),imshow(a8); subplot(339),imshow(c) %显示平均后的图像*空间域模板卷积(不同模板、不同尺寸)*%邻域模板clcclear alli=imread(Panda_jiaoyan.bmp); %读入图像i=double(i)/255;%变换数据类型subplot(221);imshow(i);%显示图像title(原图像); h=1/5*0 1 0;1 0 1;0 1 0;%定义4邻域平均模板a=filter2(h,i); %进行滤波subplot(222);imshow(a);%显示图像title(4邻域平均模板
6、);subplot(223);h=1/12*0 1 1 0;1 1 1 1;1 1 1 1;0 1 1 0; %定义8邻域平均模板a=filter2(h,i); imshow(a); title(8邻域平均模板);subplot(224);h=1/12*0 1 1 1 0;1 1 1 1 1;1 1 1 1 1;0 1 1 1 0; %定义12邻域平均模板a=filter2(h,i);imshow(a);title(12邻域平均模板)%高斯模板clcclear all %高斯模板 i=imread(Panda_jiaoyan.bmp);%读入图像 i=double(i)/255; %数值转换
7、subplot(231); imshow(i); %显示图像 %选用3*3的高斯模板 title(原图像(高斯模板) h=fspecial(gaussian); %产生预定义滤波器%格式为b=fspecial(A,m,n);这里m,n是邻域大小,默认值为【3,3】a=filter2(h,i); %对图像进行卷积滤波的函数格式:A=filter2(h,B)%其函数返回图像B经算子h滤波后的图像给Asubplot(232); imshow(a); title(3*3) subplot(233); h=fspecial(gaussian,5 5); a=filter2(h,i); imshow(a)
8、; title(5*5) %选用5*5的高斯模板subplot(234); h=fspecial(gaussian,7 7); %选用7*7的高斯模板a=filter2(h,i); imshow(a); title(7*7) subplot(235); h=fspecial(gaussian,9 9); %选用9*9的高斯模板a=filter2(h,i); imshow(a); title(9*9) subplot(236); h=fspecial(gaussian,11 11); %选用11*11的高斯模板a=filter2(h,i); imshow(a) title(11*11)加权模板%
9、加权模板i=imread(Panda_jiaoyan.bmp); % 读入图像 i=double(i)/255; %数据类型转换?subplot(1,3,1);imshow(i); %显示图像 title(原图像) h=1/10*1 1 1;1 2 1;1 1 1; %选用3*3的加权平均模板 a=filter2(h,i); subplot(1,3,2);imshow(a); title(3*3的加权平均模板) subplot(1,3,3);h=1/48*0 1 2 1 0;1 2 4 2 1;2 4 8 4 2;1 2 4 2 1;0 1 2 1 0;%选用5*5的 加权平均模板 a=fil
10、ter2(h,i); imshow(a); title(5*5的加权平均模板)*中值滤波方法完成图像去噪操作*clcclear all %高斯模板 i=imread(Panda_jiaoyan.bmp);%读入图像 i=double(i)/255; %数值转换 subplot(221); imshow(i); %显示图像title(原图像(中值) a=medfilt2(i,3 3); %中值滤波函数medfilt2,m行n列的滤波器subplot(222); imshow(a); title(3*3) subplot(223); a=medfilt2(i,5 5); imshow(a); ti
11、tle(5*5) %选用5*5subplot(224); a=medfilt2(i,7 7); imshow(a); title(7*7)*频域低通滤波器(不同滤波器模型、不同截止频率)完成图像去噪操作*clcclear all %高斯模板 i=imread(noise1.bmp);%读入图像 i=double(i)/255; %数值转换 figure;imshow(i); %显示图像 title(原图像) figure;%理想低通滤波器f1,f2 = freqspace(25,meshgrid);%频率响应的频率空间Hd = zeros(25,25); d = sqrt(f1.2 + f2.
12、2) 0.1;%低通滤波器的响应Hd(d) = 1; mesh(f1,f2,Hd)figure;a=filter2(Hd,i); imshow(a); %截止频率为 20Hz i=imread(noise1.bmp); %读入图像subplot(2,3,1); %显示 2 行 3 列第一幅图像 imshow(i); %显示图像a=fft2(double(i); %进行傅里叶变换subplot(2,3,2); %显示 2 行 3 列第二幅图像imshow(abs(a),); %显示实数部分s=log(1+abs(a); %进行对数运算,降低灰度值subplot(2,3,3); %显示 2 行 3
13、 列第三幅图像imshow(abs(s),); %显示降低灰度后的傅里叶频谱fc=fftshift(a); %把频谱移中s=log(a+abs(fc); %把移中的频谱进行对数运算,提高灰度subplot(2,3,4); %显示 2 行 3 列第四幅图像imshow(abs(s),); %显示图像m,n=size(fc); %获取频谱图大小for i=1:m %进行点运算 for j=1:n %计算频率平面道远点的距离u=floor(i-m/2); v=floor(j-n/2); d=(u2+v2)0.5; h(i,j)=1/(1+(d/20)2); %定义巴特沃斯低通滤波器fe(i,j)=h
14、(i,j)*fc(i,j); %进行巴特沃斯低通滤波endendm,n=size(fc); %获取频谱图大小for i=1:m %进行点运算for j=1:n u=floor(i-m/2); %计算频率平面道远点的距离v=floor(j-n/2); d=(u2+v2)0.5; if d20 %定义理想低通滤波器h(i,j)=1; elseh(i,j)=0; endfa(i,j)=h(i,j)*fc(i,j); endendFF=ifftshift(fe); %对经巴特沃斯处理的频谱进行逆移中ff=real(ifft2(FF); %取傅里叶逆变换的实数部分AA=ifftshift(fa); %对
15、经理想滤波处理的频谱进行逆移中aa=real(ifft2(AA); %取傅里叶逆变换的实数部分subplot(2,3,5); %显示 2 行 3 列第五幅图像imshow(uint8(ff); %显示图像 subplot(2,3,6); %显示 2 行 3 列第六幅图像 imshow(uint8(aa); %显示图像%截止频率为70i=imread(noise1.bmp); %读入图像subplot(2,3,1); %显示 2 行 3 列第一幅图像imshow(i); %显示图像 a=fft2(double(i); %进行傅里叶变换subplot(2,3,2); %显示 2 行 3 列第二幅图
16、像 imshow(abs(a),); %显示实数部分s=log(1+abs(a); %进行对数运算,降低灰度值 subplot(2,3,3); %显示 2 行 3 列第三幅图像%获取频谱图大小 imshow(abs(s),); %显示降低灰度后的傅里叶频谱fc=fftshift(a); %把频谱移中s=log(a+abs(fc); %把移中的频谱进行对数运算,提高灰度subplot(2,3,4); %显示 2 行 3 列第四幅图像imshow(abs(s),); %显示图像 m,n=size(fc); %获取频谱图大小for i=1:m %进行点运算for j=1:n u=floor(i-m/
17、2); %计算频率平面道远点的距离v=floor(j-n/2); d=(u2+v2)0.5; h(i,j)=1/(1+(d/80)2); %定义巴特沃斯低通滤波器fe(i,j)=h(i,j)*fc(i,j); %进行巴特沃斯低通滤波endendm,n=size(fc); for i=1:m %进行点运算for j=1:n u=floor(i-m/2); %计算频率平面道远点的距离v=floor(j-n/2); d=(u2+v2)0.5; if d70 %定义理想低通滤波器h(i,j)=1; elseh(i,j)=0; endfa(i,j)=h(i,j)*fc(i,j); endendFF=if
18、ftshift(fe); %对经巴特沃斯处理的频谱进行逆移中ff=real(ifft2(FF); %取傅里叶逆变换的实数部分 AA=ifftshift(fa); %对经理想滤波处理的频谱进行逆移中aa=real(ifft2(AA); %取傅里叶逆变换的实数部分subplot(2,3,5); %显示 2 行 3 列第五幅图像imshow(uint8(ff); %显示图像subplot(2,3,6); %显示 2 行 3 列第六幅图像imshow(uint8(aa); %显示图像*自定义滤波器*clcclear alli=imread(noise1.bmp);%读入图像 i=double(i)/2
19、55; %数值转换 figure;f1,f2 = freqspace(21,meshgrid);%频率响应的频率空间Hd = ones(21); r = sqrt(f1.2 + f2.2);Hd(r0.3) = 0;%所需的滤波器subplot(131), mesh(f1,f2,Hd)win = fspecial(gaussian,21,2);%高斯滤波器win = win ./ max(win(:); %归一化subplot(132), mesh(win)%高斯滤波器h = fwind2(Hd,win);%产生的滤波器subplot(133), freqz2(h)%产生滤波器的频率响应fig
20、ure;subplot(121),imshow(i); title(原图像)a=filter2(h,i); subplot(122),imshow(a); title(变换后)*带通*clcclear all i=imread(noise1.bmp);%读入图像 i=double(i)/255; %数值转换 figure;%平流层抽样法设计二位带通滤波器Hd = zeros(11,11); Hd(4:8,4:8) = 1;f1,f2 = freqspace(11,meshgrid);%频率响应的频率空间subplot(221), mesh(f1,f2,Hd), %绘出所需的频率响应axis(-1 1 -1 1 0 1.2), colormap(jet(64)h = fsamp2(Hd);%频率抽样法产生滤波器subplot(222), freqz2(h,32 32), %滤波器的频率响应axis(-1 1 -1 1 0 1.2)subplot(223)imshow(i); title(原图像)subplot(224)a=filter2(h,i);imshow(a);title(带通变换后图像)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1