图像的傅立叶变换与频域滤波

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验四图像的傅立叶变换与频域滤波

一、实验目的

1 了解图像变换的意义和手段;

2 熟悉傅里叶变换的基本性质;

3 熟练掌握FFT 方法的应用;

4 通过实验了解二维频谱的分布特点;

5 通过本实验掌握利用MATLAB 编程实现数字图像的傅立叶变换。

6、掌握怎样利用傅立叶变换进行频域滤波

7、掌握频域滤波的概念及方法

8、熟练掌握频域空间的各类滤波器

9、利用MATLAB 程序进行频域滤波

二、实验原理

1 应用傅立叶变换进行图像处理

傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。通过实验培养这项技能,将有助于解决大多数图像处理问题。对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。

2 傅立叶( Fourier )变换的定义

对于二维信号,二维Fourier 变换定义为:

F{ f (x, y)} F(u,v) f (x,y)e j2 (ux vy)dxdy 二维离散傅立叶变换为:

F(u,v)

MINI

侖 f (x,y)e j2 (uxM uyN) x 0 y 0

图像的傅立叶变换与一维信号的傅立叶变换变换一样,有快速算法,具体参见参考书目,有关傅立叶变换的快速算法的程序不难找到。实际上,现在有实现傅立叶变换的芯片,可以实时实现傅立叶变换。

3利用MATLAB软件实现数字图像傅立叶变换的程序:

匸imread( '原图像名.gif ' ); % 读入原图像文件

imshow(l); % 显示原图像

fftl=fft2(l); % 二维离散傅立叶变换

sfftl=fftshift(fftl); % 直流分量移到频谱中心

RR=real(sfftl); % 取傅立叶变换的实部

ll=imag(sfftl); % 取傅立叶变换的虚部

A=sqrt(RR.A2+ll.A2);% 计算频谱幅值

A= ( A-min(min(A)) )/(max(max(A))-min(min(A)))*225;

%归一化

figure; %设定窗口

imshow(A); %显示原图像的频谱

域滤波分为低通滤波和高通滤波两类,对应的滤波器分别为低通滤波器和高通滤波器。频域低通过滤的基本思想:

G(u,v)=F(u,v)H(u,v)

F(u,v)是需要钝化图像的傅立叶变换形式,H(u,v)是选取的一个低通过滤

器变换函数,G(u,v)是通过H(u,v)减少F(u,v)的高频部分来得到的结果,运用 傅立叶逆变换得到钝化后的图像。

理想地通滤波器(ILPF)具有传递函数: H(u,v)

1 ifD(u,v) D o 0 ifD(u,v) D o

其中,D o 为指定的非负数,D(u,v)为(u,v)到滤波器的中心的距离

D(u,v) D o 的点的轨迹为一个圆。

n 阶巴特沃兹低通滤波器(BLPF)(在距离原点D o 处出现截至频率)的传递函 数为H (u,v)

1 1 [D(u,v) D o ]2n

与理想地通滤波器不同的是,巴特沃兹率通滤波器的传递函数并不是在

D o 处突 然不连续

高斯低通滤波器(GLPF)的传递函数为

H(u,v) e D 2(u ,v) 2 2

其中,为标准差。

相应的高通滤波器也包括:理想高通滤波器、 高斯高通滤波器。给定一个低通滤波器的传递函数 简单关系,可以获得相应高通滤波器的传递函数:

利用MATLAB 实现频域滤波的程序 f=imread('room.tif);

F=fft2(f); % 对图像进行傅立叶变换

S=fftshift(log(1+abs(F)));% 对变换后图像进行队数变化,并对其坐标平 移,使其中心化 S=gscale(S); % 将频谱图像标度在 0-256 的范围内 imshow(S) % 显示频谱图像 h=special('sobel'); % 产生空间‘ sobel '模版 freqz2(h) % 查看相应频域滤波器的图像 PQ=paddedsize(size(f));% 产生滤波时所需大小的矩阵

n 阶巴特沃兹高通滤波器、 H ip (u,v),通过使用如下的 H hp 1 H |p (u,V )

H=freqz2(h,PQ(1),PQ(2));% 产生频域中的‘sobel '滤波器H1=ifftshift(H); %

重排数据序列,使得原点位于频率矩阵的左上角imshow(abs(H),[]) % 以图形形式显示滤波器figure,imshow(abs(H1),[]) gs=imfilter(double(f),h); % 用模版h 进行空域滤波gf=dftfilt(f,H1); % 用滤波器对图像进行频域滤波figure,imshow(gs,[]) figure,imshow(gf,[]) figure,imshow(abs(gs),[]) figure,imshow(abs(gf),[])

f=imread('number.tif');% 读取图片

PQ=paddedsize(size(f));% 产生滤波时所需大小的矩阵D0=0.05*PQ(1); % 设

定高斯高通滤波器的阈值H=hpfilter('gaussian',PQ(1),PQ(2),D0);% 产生高

斯高通滤波器g=dftfilt(f,H); % 对图像进行滤波figure,imshow(f) % 显示

原图像figure,imshow(g,[]) % 显示滤波后图像

相关文档
最新文档