图像的频域滤波
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六:图像的频域滤波
姓名:朱永祥学号20171170238 得分:
一、实验目的:
1、掌握傅立叶变换及逆变换的基本原理方法。
2、理解频域滤波的基本原理及方法。
3、掌握进行图像的频域滤波的方法。
二、实验内容与要求:
1、傅立叶变换
(1)读出woman.tif这幅图像,对其进行快速傅立叶变换,分别显示其幅度图像和相位图像。仅对相位部分进行傅立叶反变换后查看结果图像。
(2)仅对幅度部分进行傅立叶反变换后查看结果图像。
(3)将图像的傅立叶变换F置为其共轭后进行反变换,比较新生成图像与原始图像的差异。
2、平滑频域滤波
(1)设计理想低通滤波器、巴特沃斯低通滤波器和高斯低通滤波器,截至频率自选,分别给出各种滤波器的透视图。
(2)读出test_pattern.tif这幅图像,分别采用理想低通滤波器、巴特沃斯低通滤波器和高斯低通滤波器对其进行滤波(截至频率自选),再做反变换,观察不同的截止频率下采用不同低通滤波器得到的图像与原图像的区别,特别注意振铃效应。(提示:1)在频率域滤波同样要注意到填充问题;2)注意到(-1)x+y;)
3、锐化频域滤波
(1)设计理想高通滤波器、巴特沃斯高通滤波器和高斯高通滤波器,截至频率自选,分别给出各种滤波器的透视图。
(2)读出test_pattern.tif这幅图像,分别采用理想高通滤波器、巴特沃斯高通滤波器和高斯高通滤波器对其进行滤波(截至频率自选),再做反变换,观察不同的截止频率下采用不同高通滤波器得到的图像与原图像的区别。
三、实验代码及结果:
1、(1)a、实验代码:
>> img=imread('C:\Users\xxdn\Desktop\图片1.png');
>> img=rgb2gray(img);
>> f1=fft2(img);
>> f2=log(1+abs(f1));
>> f3=fftshift(f1);
>> f4=angle(f1);
>>figure,subplot(1,3,1),imshow(img),title('Original Image'); subplot(1,3,2),imshow(log(1+abs(f3)),[]),title('amplitude spectrum'); subplot(1,3,3),imshow(f4),title('phase spectrum');
>> i=sqrt(-1);
>> f5=ifft(exp(i*angle(f1)));
>> imshow(real(f5),[]);
>> imshow(real(f5),[]),title('Phasw-based Restoration Image');
B、实验结果:
(2)a、实验代码:
>> f=ifft2(abs(f1));
>> imshow(log(1+abs(f)),[]),title('absamplitude spectrum');
b、实验结果:
(3)a、实验代码:
>> f6=conj(f1);
>> f7=ifft2(f6);
>> imshow(f7,[]),title('inverse fourier transform');
b、实验结果:
2、(1)a、实验代码:
>> %%%%%%%%%%%%%%%%%%%理想低通滤波器的透视图%%%%%
>> a=100;
>> b=100;
>> U=0:a;
>> V=0:b;
>> M=length(U);N=length(V);
>> D0=10;
>> x1=50;y1=50;
>> x0=-50;y0=-50;
>> m=fix(M/2); n=fix(N/2);
>> H=zeros(M,N);
>> n=2;
>> for u=1:M
for v=1:N
a=sqrt((U(u) - 50) .* (U(u)-50) + (V(v) - 50) .* (V(v) - 50));
if(a<=D0)%理想滤波器
H(u,v)=1;
else
H(u,v)=0;
end
end
end
>>surf(U,V,H),title('理想低通滤波透视图') ;
>> %%%%%%%%%%%%2 阶巴特沃斯低通滤波透视
图%%%%%%%%%%%%%%%%55
>> a=100;
>> b=100;
>> U=0:a;
>> V=0:b;
>> M=length(U);N=length(V);
>> D0=10;
>> x1=50;
>> y1=50;
>> x0=-50;
>> y0=-50;
>> m=fix(M/2);
>> n=fix(N/2);
>> H=zeros(M,N);
>> n=2;
>> for u=1:M
for v=1:N
a=sqrt((U(u) - 50) .* (U(u)-50) + (V(v) - 50) .* (V(v) - 50));
b=1+(a/D0)^2*n;
H(u,v)=1/b;
end
end
>>surf(U,V,H),title('n=2 Butterworth lowess filter');
>> %%%%%%%%%%%%%%%%%%%%%%高斯低通滤波%%%%%%%%%%%%%%%%%%%%%
>> a=100;
>> b=100;
>> U=0:a;
>> V=0:b;
>> M=length(U);N=length(V);
>> D0=10;
>> x1=50;
>> y1=50;
>> x0=-50;
>> y0=-50;
>> m=fix(M/2);
>> n=fix(N/2);
>> H=zeros(M,N);
>> for u=1:M
for v=1:N
D1=((u-m-x0)^2+(v-n-y0).^2)^0.5;
D2=((u-m+x0)^2+(v-n+y0).^2)^0.5;
D11=((u-m-x1)^2+(v-n-y1).^2)^0.5;