资源描述:
《昆明理工大学数字图像处理实验二》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、昆明理工大学信息工程与自动化学院学生实验报告(2012—2013学年第二学期)课程名称:数字图像处理开课实验室:4442015年4月17日年级、专业、班学号姓名成绩实验项目名称频率域滤波指导教师王剑教师评语教师签名:年月日一、实验目的及内容内容:频率域滤波获得图像的傅里叶图1、平滑采用低通平滑滤波器(理想、buttworth、Gaussian)完成图像的平滑功能,并用mesh函数绘制滤波器2、锐化采用高通平滑滤波器(理想、buttworth、Gaussian)完成图像的平滑功能,并用mesh函数绘制滤波器二、实验原理在傅
2、里叶图像中,高频位于图像的四角,低频位于图像中心,图像的边缘和细节主要在高频部分显示,对应到四角,而图像的背景和基调对应为图像的低频部分,在图像的中心。频率域滤波的基本步骤:①F=fft2(f)F:傅里叶图像②Fc=fftshift(F)Fc:中心化后的傅里叶图像③Gc=H(u,v)*FcG:频域的输出图像④G=ifftshift(Gc)g:空间域的输出图像⑤g=ifft2(G)H:频域滤波器⑥g=real(g)real:输出图像的实部ilpf(理想低通滤波器):由于高频成分包含大象的图像边缘信息,因此ilpf在去噪的同
3、事会导致边缘信息的损失,同时造成图像边缘模糊。BLPF(巴特沃斯低通滤波器):连续性衰减没有ILPF那样陡峭不连续,因此图像边缘模糊大大减少,但大大增加了计算量。GLPF(高斯低通滤波器):图像边缘模糊成都较ILPF小,而比BLPF大理想低通滤波器的传递函数:Hu,v=1Du,v≤D00Du,v>D0N阶巴特沃斯低通滤波器的传递函数:Hu,v=11+[D(u,v)/D0]2n高斯低通滤波器的传递函数:Hu,v=e-D2(u,v)/2D02理想高通滤波器的传递函数:Hu,v=0Du,v≤D01Du,v>D0巴特沃斯高通滤波
4、器的传递函数:Hu,v=11+[D0/D(u,v)]2n高斯高通滤波器的传递函数:Hu,v=1-e-D2(u,v)/2D02一、实验源代码及结果平滑:理想低通平滑滤波器ff=imread('zoro.png')%读取zoro.png图像,赋值给fff=rgb2gray(ff);%将rgb图像转换成灰度图像,赋值给fsubplot(2,2,1),imshow(f),title('原图');F=fft2(f);%对图像进行傅里叶变换subplot(2,2,2),imshow(F),title('傅里叶图');Fc=fftsh
5、ift(F);[MN]=size(Fc);%分别返回Fc的行数到M中,列数到N中m=floor(M/2);%对M/2进行取整n=floor(N/2);%对N/2进行取整D0=5;%初始化D0fori=1:Mforj=1:Nd=sqrt((i-m)^2+(j-n)^2);%点(i,j)到傅里叶变换中心的距离ifd<=D0;%点(i,j)在通带内的情况H(i,j)=1;%通带变换函数elseH(i,j)=0;%阻带变换函数endendendGc=H.*Fc;%理想低通滤波器滤波后的频域表示G=ifftshift(Gc);%去
6、中心化g=ifft2(G);%反傅里叶变换g=uint8(real(g));%显示图像的实部subplot(2,2,3),mesh(H(1:10:300,1:10:300)),title('滤波器');%绘制滤波器subplot(2,2,4),imshow(g),title('理想平滑图');巴特沃斯平滑滤波器ff=imread('zoro.png')%读取zoro.png图像,赋值给fff=rgb2gray(ff);%将rgb图像转换成灰度图像,赋值给fsubplot(2,2,1),imshow(f),title('原
7、图');F=fft2(f);%对图像进行傅里叶变换subplot(2,2,2),imshow(F),title('傅里叶图');Fc=fftshift(F);%中心化[MN]=size(Fc);%分别返回Fc的行数到M中,列数到N中m=floor(M/2);%对M/2进行取整n=floor(N/2);%对N/2进行取整D0=5;%初始化D0fori=1:Mforj=1:Nd=sqrt((i-m)^2+(j-n)^2);%点(i,j)到傅里叶变换中心的距离H(i,j)=1/(1+(d/D0)^4);endendGc=H.*
8、Fc;G=ifftshift(Gc);%去中心化g=ifft2(G);%反傅里叶变换g=uint8(real(g));%显示图像的实部subplot(2,2,3),mesh(H(1:10:300,1:10:300)),title('滤波器');%绘制滤波器subplot(2,2,4),imshow(g),title(