文档详情

实验5傅立叶变换.doc

发布:2017-02-16约5.26千字共19页下载文档
文本预览下载声明
实验五 傅立叶变换与频率域滤波 一、实验目的 理解傅立叶变换; 熟悉MATLAB中各种傅立叶变换相关的函数; 掌握频域滤波的步骤以及MATLAB的实现方法; 理解频域滤波器与空域滤波器的关系。 二、实验内容及步骤 1、傅立叶变换及傅立叶反变换 (1)傅立叶变换相关函数 MATLAB提供了几个和傅立叶变换相关的函数。其说明如下: F=fft2(f); 二维傅立叶变换 real(F); 傅立叶变换的实部 imag(F); 傅立叶变换的虚部 abs(F); 获得傅立叶频谱 fftshift(F); 将变换的原点移至频率矩形的中心 ifft2(F); 二维傅立叶反变换 iffshift(F); 反中心平移 (2)傅立叶频谱 傅立叶频谱(傅立叶变换的幅度)反映了图像的频率成分。幅值谱的能量往往集中于中低频部分,并且中低频部分的能量反映了图像的实体。 图像的噪声往往集中于高频部分。 下面的例子对课本中123页的图Fig4.03(a).jpg进行傅立叶变换,得到傅立叶频谱。 例: x=imread(Fig4.03(a).jpg); F=fft2(x); %二维傅立叶变换 FP=sqrt(real(F).^2+imag(F).^2); %计算傅立叶频谱,或者使用abs()函数 imshow(uint8(FP)) %显示傅立叶频谱,直流成分分布在四个边角 figure(2); imshow(uint8(fftshift(FP))) % 中心平移的频谱图 思考题1:对课本125页的图Fig4.04(a).jpg进行傅立叶变换,得到傅立叶频谱,为清楚地显示该谱,将其进行对数变换处理,增强其灰度细节。结果类似于图5_1。 图5_1 Fig4.04(a)的傅立叶谱 x=imread(Fig4.04(a).jpg); F=fft2(x); FP=sqrt(real(F).^2+imag(F).^2); PP=fftshift(FP) imshow(x) figure(2); imshow(log(abs(PP)+1),[ ]) (3)傅立叶变换对 将一幅图像进行傅立叶变换,再进行傅立叶反变换,可以得到原始图像。下面的例子对课本中134页的图Fig4.11(a)进行傅立叶变换,然后再进行傅立叶反变换,观察并了解实现过程。 理论上,经过傅立叶变换和傅立叶反变换,应该得到原始图像。比较fa和f,基本差不多。查看变量C的内容,可以看到他们之间还是有细微的差别的。 例: close all f=imread(Fig4.11(a).jpg); F=fft2(f); %傅立叶变换 ff=ifft2(F); %反傅立叶变换 fa=real(ff); % 取实部 subplot(2,2,1),imshow(f); subplot(2,2,2),imshow(F); %只显示变换的实部 subplot(2,2,3),imshow(ff,[]); subplot(2,2,4),imshow(fa,[]); figure(2) C=fa-double(f); %反变换回来的图像和原图相减 imshow(C,[]); %两者是有差别的 2、频率域滤波 按照频域滤波的步骤,在MATLAB中是很容易编程实现频域滤波。由于滤波器就是频率域中的函数,关键是如何构造滤波器函数。频域滤波的步骤为: 对图像进行傅立叶变换DFT, 即F(u,v); 傅立叶变换原点中心平移; 用滤波器函数H(u,v)乘以F(u,v); 将原点反中心平移; 傅立叶反变换; 取上一步结果中的实部,即频域滤波后的结果。 (1) 低通滤波 低通滤波是使低频部分通过,而使高频部分受到抑制,从而使图像变得平滑。常用的低通滤波有理想低通滤波、巴特沃斯低通滤波和高斯低通滤波。 下面的例子实现了对课本135页图Fig4.11(a)进行理想低通滤波处理,截止频率D0=30。 例: close all clear all f=imread(Fig4.11(a).jpg); % ------构造理想低通滤波器---------- [Hh Hw]=size(f); %以图像的行列值作为滤波器的行列 H(1: Hh,1: Hw)=0; %滤波器的初值为0 x0=Hh/2; y0=Hw/2; % 滤波器的中心点 for x=1:Hh for y=1:Hw if(sqrt((x- x0)*(x- x0)+(y-y0)*(y- y0))30) %理想低通滤波器 D0=30 H(x,y)=1; end end end % ----
显示全部
相似文档