当前位置:文档之家› 图像的频域滤波

图像的频域滤波

实验六:图像的频域滤波姓名:朱永祥学号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:Mfor v=1:Na=sqrt((U(u) - 50) .* (U(u)-50) + (V(v) - 50) .* (V(v) - 50));if(a<=D0)%理想滤波器H(u,v)=1;elseH(u,v)=0;endendend>>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:Mfor v=1:Na=sqrt((U(u) - 50) .* (U(u)-50) + (V(v) - 50) .* (V(v) - 50));b=1+(a/D0)^2*n;H(u,v)=1/b;endend>>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:Mfor v=1:ND1=((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;D21=((u-m+x1)^2+(v-n+y1).^2)^0.5;H(u,v) = (U(u) - 50) .* (U(u)-50) + (V(v) - 50) .* (V(v)- 50); endend>> S=50;>> H = -H/(2*S);>> H = exp(H) / (sqrt(2*pi) * sqrt(S));>> surf(U,V,H),title('Gaussian lowess filter');b、实验结果:(2)a、实验代码:%理想低通滤波>> img=imread('C:\Users\xxdn\Desktop\test_pattern.tif'); >> img=rgb2gray(img);>> f=double(img);>> g=fft2(f);>> g=fftshift(g);>> [M,N]=size(g);>> d0=15;>> m=fix(M/2);>> n=fix(N/2);>> for i=1:Mfor j=1:Nd=sqrt((i-m)^2+(j-n)^2);if(d<=d0)h=1;elseh=0;endresult(i,j)=h*g(i,j);endend>> result=ifftshift(result);>> J1=ifft2(result);>> J2=uint8(real(J1));>>figure,subplot(1,2,1),imshow(img),title('Original Image'); subplot(1,2,2),imshow(J2),title('d0=15 lowpss filter');>> d0=30;>> m=fix(M/2);>> n=fix(N/2);>> for i=1:Mfor j=1:Nd=sqrt((i-m)^2+(j-n)^2);if(d<=d0)h=1;elseh=0;endresult(i,j)=h*g(i,j);endend>> result=ifftshift(result);>> J1=ifft2(result);>> J2=uint8(real(J1));>> imshow(J2),title('d0=30 lowpss filter');>> d0=100;>> m=fix(M/2);n=fix(N/2);for i=1:Mfor j=1:Nd=sqrt((i-m)^2+(j-n)^2);if(d<=d0)h=1;elseh=0;endresult(i,j)=h*g(i,j);endendresult=ifftshift(result);J1=ifft2(result);J2=uint8(real(J1));imshow(J2),title('d0=100 lowpss filter');>> %2 阶巴特沃斯低通滤波>> nn=2;>> d0=15;>> m=fix(M/2);>>n=fix(N/2);>> for i=1:Mfor j=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);endend>> result=ifftshift(result);>> J1=ifft2(result);>> J2=uint8(real(J1));>> figure,subplot(1,2,1),imshow(img),title('Original Image'); subplot(1,2,2),imshow(J2),title('d0=15 Butterworth lowpss filter');>> %%%%%%%%d0=30 的巴特沃斯低通滤波%%%%%%%%%%%%%%% >> d0=30;>> m=fix(M/2);>>n=fix(N/2);>> for i=1:Mfor j=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);J1=ifft2(result);J2=uint8(real(J1));>> imshow(J2),title('d0=30 Butterworth lowpss filter');>> %%%%%%%%d0=100 的巴特沃斯低通滤波%%%%%%%%%%%%%%%d0=100;>> d0=100;>> m=fix(M/2);>>n=fix(N/2);>> for i=1:Mfor j=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);J1=ifft2(result);J2=uint8(real(J1));>> imshow(J2),title('d0=100 Butterworth lowpss filter');%高斯低通滤波d0=15;>> m=fix(M/2);>>n=fix(N/2);>> for i=1:M>> for i=1:Mfor j=1:Nd=sqrt((i-m)^2+(j-n)^2);h=exp(-(d.^2)./(2*(d0^2)));result(i,j)=h*g(i,j);endend>> result=ifftshift(result);>> J1=ifft2(result);>> J2=uint8(real(J1));subplot(1,2,1),imshow(img),title('Original Image'); subplot(1,2,2),imshow(J2),title('d0=15 Gaussian filter');>> %%%%%%%%d0=30 的高斯低通滤波%%%%%%%%%%%%%%% >> d0=30;>> m=fix(M/2);>>n=fix(N/2);>> for i=1:Mfor j=1:Nd=sqrt((i-m)^2+(j-n)^2);h=exp(-(d.^2)./(2*(d0^2)));result(i,j)=h*g(i,j);endendresult=ifftshift(result);J1=ifft2(result);J2=uint8(real(J1));imshow(J2),title('d0=30 Gaussian filter');>> %%%%%%%%d0=100 的高斯低通滤波%%%%%%%%%%%%%%% >> d0=100;>> m=fix(M/2);>>n=fix(N/2);>> for i=1:Mfor j=1:Nd=sqrt((i-m)^2+(j-n)^2);h=exp(-(d.^2)./(2*(d0^2)));result(i,j)=h*g(i,j);endendresult=ifftshift(result);J1=ifft2(result);J2=uint8(real(J1));imshow(J2),title('d0=100 Gaussian filter');3、(1)a、实验代码:>> %%%%%%%%%%%%%%%%理想高通滤波器%%%%%%%%%%%%%%%%%%%%%%%%%%%>> a=100;>> b=100;>> U=0:a;>> V=0:b;>> M=length(U);N=length(V);>> D0=15;>> H=zeros(M,N);>> n=2;>> for u=1:Mfor v=1:Na=sqrt((U(u)-50).*(U(u)-50)+(V(v)-50).*(V(v)-50));if(a>=D0)H(u,v)=1;elseH(u,v)=0;endendend>> surf(U,V,H),title('理想高通滤波透视图') ;>> %%%%%%%%%%%%%%%巴特沃斯高通滤波器%%%%%%%%%%%%%%%%%%%%%%%%>> a=100;b=100;U=0:a;V=0:b;M=length(U);N=length(V);D0=15;>> 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:Mfor v=1:Na=sqrt((U(u) - 50) .* (U(u)-50) + (V(v) - 50) .* (V(v) - 50));b=1+(a/D0)^2*n;H(u,v)=-1/b;endend>> surf(U,V,H),title('n=2 Butterworth high filter')>> %%%%%%%%%%%%%%高斯高通滤波>> a=100;b=100;U=0:a;V=0:b;M=length(U);N=length(V);D0=15;x1=50;y1=50;x0=-50;y0=-50;m=fix(M/2);n=fix(N/2);H=zeros(M,N);>> for u=1:Mfor v=1:ND1=((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;D21=((u-m+x1)^2+(v-n+y1).^2)^0.5;H(u,v) = (U(u) - 50) .* (U(u)-50) + (V(v) - 50) .* (V(v) - 50);endend>> S=50;>> H = -H/(2*S);>> H =- exp(H) / (sqrt(2*pi) * sqrt(S));>> surf(U,V,H),title('Gaussian high filter');(2)a、实验代码:>> img=imread('C:\Users\xxdn\Desktop\test_pattern.tif'); >> img=rgb2gray(img);>> f=double(img);>> g=fft2(f);>> g=fftshift(g);>> [M,N]=size(g);>> d0=15;>> m=fix(M/2);>> n=fix(N/2);>> for i=1:Mfor j=1:Nd=sqrt((i-m)^2+(j-n)^2);if(d>=d0)h=1;elseh=0;endresult(i,j)=h*g(i,j);endend>> result=ifftshift(result);>> J1=ifft2(result);>> J2=uint8(real(J1));>> subplot(1,2,1),imshow(img),title('Original Image'),subplot(1,2,2),imshow(J2),title('d0=15 high filter');>> d0=30;>> m=fix(M/2);n=fix(N/2);for i=1:Mfor j=1:Nd=sqrt((i-m)^2+(j-n)^2);if(d>=d0)h=1;elseh=0;endresult(i,j)=h*g(i,j);endendresult=ifftshift(result);J1=ifft2(result);J2=uint8(real(J1));>> imshow(J2),title('d0=30 high filter');>> d0=80;>> m=fix(M/2);n=fix(N/2);for i=1:Mfor j=1:Nd=sqrt((i-m)^2+(j-n)^2);if(d>=d0)h=1;elseh=0;endresult(i,j)=h*g(i,j);endendresult=ifftshift(result);J1=ifft2(result);J2=uint8(real(J1));>> imshow(J2),title('d0=80 high filter');>> %巴特沃斯高通滤波>> img=imread('C:\Users\xxdn\Desktop\test_pattern.tif'); img=rgb2gray(img);f=double(img);g=fft2(f);g=fftshift(g);[M,N]=size(g);>> img=imread('C:\Users\xxdn\Desktop\test_pattern.tif'); >> img=rgb2gray(img);>> f=double(img);>> g=fft2(f);>> g=fftshift(g);>> [M,N]=size(g);>> nn=2;>> d0=15;>> m=fix(M/2);>> n=fix(N/2);>> for i=1:Mfor j=1:Nd=sqrt((i-m)^2+(j-n)^2);if(d==0)h=0;elseh=1/(1+0.414*(d0/d)^(2*nn));endresult(i,j)=h*g(i,j);endend>> result=ifftshift(result);>> J1=ifft2(result);>> J2=uint8(real(J1));>> subplot(1,2,1),imshow(img),title('Original Image'),subplot(1,2,2),imshow(J2),title('d0=15 Butterworth high filter');>> d0=30;>> m=fix(M/2);n=fix(N/2);for i=1:Mfor j=1:Nd=sqrt((i-m)^2+(j-n)^2);if(d==0)h=0;elseh=1/(1+0.414*(d0/d)^(2*nn));endresult(i,j)=h*g(i,j);endendresult=ifftshift(result);J1=ifft2(result);J2=uint8(real(J1));>> imshow(J2),title('d0=30 Butterworth high filter');>> d0=80;>> m=fix(M/2);n=fix(N/2);for i=1:Mfor j=1:Nd=sqrt((i-m)^2+(j-n)^2);if(d==0)h=0;elseh=1/(1+0.414*(d0/d)^(2*nn));endresult(i,j)=h*g(i,j);endendresult=ifftshift(result);J1=ifft2(result);J2=uint8(real(J1));imshow(J2),title('d0=80 Butterworth high filter');>> %高斯高通滤波器>> img=imread('C:\Users\xxdn\Desktop\test_pattern.tif'); >> img=rgb2gray(img);>> f=double(img);>> g=fft2(f);>> g=fftshift(g);>> [M,N]=size(g);>> n=2;>> d0=15;>> m=fix(M/2);>> n=fix(N/2);>> for i=1:Mfor j=1:Nd=sqrt((i-m)^2+(j-n)^2);h=1-exp(-(d.^2)./(2*(d0^2)));result(i,j)=h*g(i,j);endend>> result=ifftshift(result);>> J1=ifft2(result);>> subplot(1,2,1),imshow(img),title('Original Image'), subplot(1,2,2),imshow(J2),title('d0=15 Gaussian filter');>>>> d0=30;>> m=fix(M/2);n=fix(N/2);for i=1:Mfor j=1:Nd=sqrt((i-m)^2+(j-n)^2);h=1-exp(-(d.^2)./(2*(d0^2)));result(i,j)=h*g(i,j);endendresult=ifftshift(result);J1=ifft2(result);J2=uint8(real(J1));>> imshow(J2),title('d0=30 Gaussian filter');>> d0=80;>> m=fix(M/2);n=fix(N/2);for i=1:Mfor j=1:Nd=sqrt((i-m)^2+(j-n)^2);h=1-exp(-(d.^2)./(2*(d0^2)));result(i,j)=h*g(i,j);endendresult=ifftshift(result);J1=ifft2(result);J2=uint8(real(J1));imshow(J2),title('d0=80 Gaussian filter');三、实验结论:1、当频带中心宽度相同时,理想低通滤波器为圆柱形图像,二阶巴特沃斯低通滤波器的面线比较紧凑,高斯滤波图像最为平滑;2、理想低通滤波器截止频率d0=15 时,滤波后的图像比较模糊,振铃现象也很明显;当d0=30 时,图像模糊程度减弱,振铃现象仍存在。

相关主题