图像平滑滤波学号:A01314063姓名:陈文鹏1.实验目的:分别使用空域法、频域法实现图像平滑滤波,分析空域滤波器和频域滤波器之间的转化过程2.实验方法和步骤:1.空域法图像平滑滤波:方法:邻域平均法步骤:1.imread()读取图像。2.rgb2gray()函数将原图转换为灰度图。3.imnoise()函数为原图加高斯白噪声。4.double()将加了噪声的图转换为双精度型。5.创建3*3模板,用模板对噪声图邻域平均,Image()显示处理后的图像。6.创建5*5模板,用模板对噪声图邻域平均,Image()显示处理后的图像。7.创建7*7模板,用模板对噪声图邻域平均,Image()显示处理后的图像。其源程序代码如下:clear;clc;closeall;I=imread('E:\cwp.jpg');%读取图像f=rgb2gray(I);%将原图转换为灰度图subplot(2,3,1);%分割2*3个窗口。取第一个窗口,下面在第一个窗口处显示图像imshow(f);%显示灰度图colormap(gray);title('原始图')%给显示的图像命名为“原始图”J=imnoise(f,'gaussian',0,0.09);%给原始图加入参数为0.09的高斯白噪声subplot(2,3,2);%分割2*3个窗口。取第二个窗口imshow(J);%显示加了高斯白噪声的图像title('噪声图')%命名为“噪声图”[mn]=size(f);%获取灰度图的大小f=double(f);%转换f为双精度型c=1/9*[111;111;111];%3*3模板fori=1:mforj=1:nL=f(i:i,j:j).*c;%求点积G(i,j)=sum(sum(L));%求和endendsubplot(2,3,3);image(G);%取第三个窗口title('3*3模板')%命名为“3*3模板”c=1/25*[11111;11111;11111];%5*5模板fori=1:mforj=1:nL=f(i:i,j:j).*c;%求点积G(i,j)=sum(sum(L));%求和endendsubplot(2,3,4);image(G);%在第四个窗口中显示图像title('5*5模板')%命名为“5*5模板”c=1/49*[1111111;1111111;1111111];%7*7模板fori=1:mforj=1:nL=f(i:i,j:j).*c;%求点积G(i,j)=sum(sum(L));%求和endendsubplot(2,3,5);image(G);%在第五个窗口中显示图像title('7*7模板')%命名为“7*7模板”end2.频域法图像平滑滤波:方法:二阶布特沃斯低通滤波法步骤:1.imread()读取图像。2.Size()函数获取图像矩阵大小。3.将矩阵转换为双精度型,再将原图转换为灰度图。4.wgn()函数产生高斯白噪声并加入原来图像中。5.fft2()对图像进行傅立叶变换。6.巴特沃斯低通滤波器传递函数与图像傅立叶变换相乘。7.ifft2()函数进行逆傅立叶变换。8.image()函数显示图像。其源程序代码如下:clear;clc;closeall;I=imread('E:\cwp.jpg');%读取图像[mnp]=size(I);%获取图像矩阵大小I=double(I);%将原来的图像矩阵转换为双精度型的I=I(1:m,1:n,1).*0.3+I(1:m,1:n,2).*0.51+I(1:m,1:n,1).*0.11;%将原图转换为灰度图subplot(2,2,1);image(I);colormap(gray);%分割2*2个窗口。取第一个窗口,显示灰度图title('原始图');%命名为“原始图”Noise=wgn(m,n,25);%产生25dBm的高斯白噪声New=Noise+I;%将高斯白噪声与原始信号叠加subplot(2,2,2);image(New);%在第二个窗口中显示加了噪声的图像title('噪声图')%命名为“噪声图”g=fft2(New);%傅立叶变换g=fftshift(g);%转换数据矩阵[M,N]=size(g);%获取矩阵大小nn=2;%定义二阶巴特沃斯(Butterworth)低通滤波器d0=20;%截止频率为20m=fix(M/2);n=fix(N/2);%圆整函数fori=1:Mforj=1:Nd=sqrt((i-m)^2+(j-n)^2);h=1/(1+0.414*(d/d0)^(2*nn));%计算低通滤波器传递函数result(i,j)=h*g(i,j);%传递函数与信号傅立叶变换函数相乘endendresult=ifftshift(result);J2=ifft2(result);%逆傅立叶变换J3=uint8(real(J2));%将输出图像转换为8位数据存储subplot(2,2,3);image(J3);%在第三个窗口中显示滤波后的图像title('截止频率20');%命名为“截止频率20”nn=2;%定义二阶巴特沃斯(Butterworth)低通滤波器d0=100;%截止频率为100m=fix(M/2);n=fix(N/2);%圆整函数fori=1:Mforj=1:Nd=sqrt((i-m)^2+(j-n)^2);h=1/(1+0.414*(d/d0)^(2*nn));%计算低通滤波器传递函数result(i,j)=h*g(i,j);%传递函数与信号傅立叶变换函数相乘endendresult=ifftshift(result);J2=ifft2(result);%二维逆傅立叶变换J3=uint8(real(J2));%转换为8位存储的图像subplot(2,2,4);image(J3);%在第四个窗口中显示绿波后的图像title('截止频率100')%命名为“截止频率100”end3.实验结果与分析:空域法图像平滑滤波处理结果如下:由噪声图与滤波后的图像对比可看出,邻域平均法对抑制噪声有明显的效果,但随着邻域的加大,就是随着模板的加大,图像的模糊程度也愈加严重。频域法图像平滑滤波处理结果如下:巴特沃斯低通滤波器的去噪效果与所选的截止频率有关,由于一幅图像的边缘、跳跃部分以及颗粒噪声代表图像信号的高频分量,而大面积的背景区则代表图像信号的低频分量所以,截频设的太低会使图像变得越模糊,因为图像的许多细节信息也被滤掉了。