资源预览内容
第1页 / 共21页
第2页 / 共21页
第3页 / 共21页
第4页 / 共21页
第5页 / 共21页
第6页 / 共21页
第7页 / 共21页
第8页 / 共21页
第9页 / 共21页
第10页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
实验四、频域滤波一、 实验目的1 了解频域滤波的方法;2 掌握频域滤波的基本步骤。二、实验内容1 使用二维快速傅立叶变换函数fft2( )及其反变换函数ifft2( )对图象进行变换;2 自己编写函数生成各种频域滤波器;3 比较各种滤波器的特点。三、实验步骤1 图象的傅立叶变换a. 对图象 1.bmp 做傅立叶变换。 x=imread(1.bmp); f=fft2(x); imshow(real(f) %显示变换后的实部图象 figure f1=fftshift(f); imshow(real(f1)x=imread(1.bmp); f=fft2(x); subplot(1,2,1) imshow(real(f) %显示变换后的实部图象 title(实部图象); subplot(1,2,2) f1=fftshift(f); imshow(real(f1) title(中心平移图象);b. 对图象 cameraman.tif 进行傅立叶变换,分别显示变换后的实部和虚部图象。Help realx=imread(cameraman.tif); f=fft2(x); subplot(1,2,1) imshow(real(f) %显示变换后的实部图象 title(实部图象); subplot(1,2,2) imshow(imag(f) title(虚部图象);思考:对图象 cameraman.tif 进行傅立叶变换,并显示其幅度谱|F(U,V)|。结果类似下图。Abs()显示结果命令imshow(uint8(y./256),)x=imread(cameraman.tif); f=fft2(x); ff=abs(f); subplot(1,3,1) imshow(x) subplot(1,3,2) imshow(uint8(ff./256),) title(|F(u,v)|); subplot(1,3,3) f1=fftshift(ff); imshow(uint8(f1./256),) title(中心平移图象);2 频域滤波的步骤a. 求图象的傅立叶变换得 F=fft2(x)b. 用函数F=fftshit(F) 进行zhongxin移位c. 生成一个和F 一样大小的滤波矩阵 H .d. 用F和H相乘得到 G , G=F.*He. 求G的反傅立叶变换得到 g 就是我们经过处理的图象。这其中的关键就是如何得到H 。 3 理想低通滤波器a. 函数dftuv( )在文件夹中,它用生成二维变量空间如: U V=dftuv(11,11)b. 生成理想低通滤波器U V=dftuv(51,51); D=sqrt(U.2+V.2); H=double(D close all Q=0.7F=imread(cameraman.tif) U V=dftuv(size(F,1),size(F,2); D=sqrt(U.2+V.2); H=double(D= size(F,1)/2*Q); %修改系数Q为0.5,0.3,0.2 FF=fft2(F); G=FF.*H; imshow(real(fftshift(FF) figure imshow(real(fftshift(G)g=real(ifft2(G);figureimshow(uint8(g)close all Q=0.7F=imread(cameraman.tif) U V=dftuv(size(F,1),size(F,2); D=sqrt(U.2+V.2); H=double(D= size(F,1)/2*Q); %修改系数Q为0.5,0.3,0.2 FF=fft2(F); G=FF.*H; subplot(1,3,1) imshow(real(fftshift(FF)subplot(1,3,2) imshow(real(fftshift(G)g=real(ifft2(G);subplot(1,3,3)imshow(uint8(g)思考: 观察理想低通滤波器不同滤波半径对滤波结果的影响。即系数Q分别为0.7、0.5、0.3、0.2时,结果如何?并加以解释说明。可以明显的看出。使用理想低通滤波器,结果图像会产生较大的振铃,理想低通滤波器在频域是一个矩形的,而转换到时域以后,就变成了一个非因果系统了,这个在电路(物理)上是无法实现的。close all Q1=0.5;Q2=0.3;Q3=0.2;F=imread(cameraman.tif) U V=dftuv(size(F,1),size(F,2); D=sqrt(U.2+V.2); H1=double(D= size(F,1)/2*Q1); H2=double(D= size(F,1)/2*Q2); H3=double(D close allf=imread(cameraman.tif);PQ=size(f);U V=dftuv(PQ(1),PQ(2);D0=30;F=fft2(f,PQ(1),PQ(2); % 与F=fft2(f)相同H=exp(-(U.2+V.2)/(2*(D02); %高斯低通mesh(U,V,H)figure G=F.*H; imshow(real(fftshift(F) figure imshow(real(fftshift(G)g=real(ifft2(G);figureimshow(uint8(g)思考:使用二阶巴特沃兹滤波器对图象cameraman.tif进行低通滤波。H=1./(1+(D./d0).(2*n);close allf=imread(cameraman.tif);PQ=size(f);U V=dftuv(PQ(1),PQ(2);d0=30;n=2;D=sqrt(U.2+V.2);F=fft2(f,PQ(1),PQ(2); % 与F=fft2(f)相同H=1./(1+(D./d0).(2*n); %二阶巴特沃兹滤波mesh(U,V,H)figuresubplot(1,3,1) G=F.*H; imshow(real(fftshift(F) subplot(1,3,2) imshow(real(fftshift(G)g=real(ifft2(G);subplot(1,3,3)imshow(uint8(g) 5. 高通滤波器 a.我们可以参照理想低通滤波器的思路,得到 U V=dftuv(256,256); D=sqrt(U.2+V.2); H=double(D=75); Mesh(U,V,H)b.对图象cameraman.tif进行理想高通滤波 close allx=imread(cameraman.tif); U V=dftuv(size(x,1),size(x,2); D=sqrt(U.2+V.2); H=double(D= 30); F=fft2(x); G=F.*H; imshow(real(fftshift(F) figure imshow(real(fftshift(G)g=real(ifft2(G);figureimshow(uint8(g)w=histeq(g);figureimshow(w)思考:使用高斯高通滤波器对图象cameraman.tif进行高通滤波。H1=1-exp(-(U.2+V.2)./(2*(D02);close allx=imread(cameraman.tif); U V=dftuv(size(x,1),size(x,2); D0=15; H=1-exp(-(U.2+V.2)./(2*(D02); F=fft2(x); G=F.*H; g=real(ifft2(G);subplot(121)imshow(uint8(g),)title(D=15,GHPF)w=histeq(g);subplot(122)imshow(w)close allx=imread(cameraman.tif); U V=dftuv(size(x,1),size(x,2); D0=30; H=1-exp(-(U.2+V.2)./(2*(D02); F=fft2(x); G=F.*H; g=real(ifft2(G);subplot(121)imshow(uint8(g),)title(D0=30,GHPF)w=histeq(g);subplot(122)imshow
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号