数字图像的傅里叶变换
一. 课程设计目的
(1)了解图像变换的意义和手段
(2)熟悉傅里叶变换的基本性质
(3)热练掌握FFT的方法反应用
(4)通过本实验掌握利用MATLAB编程实现数字图像的傅里叶变换
二.课程设计要求
(1)熟悉并掌握傅立叶变换
(2)了解傅立叶变换在图像处理中的应用
(3)通过实验了解二维频谱的分布特点
(4)用MATLAB实现傅立叶变换仿真
三.设计思路
1.相关知识原理
1
沈阳理工大学数字图像处理报告
(1)应用傅里叶变换进行数字图像处理
数字图像处理(digital image processing)是用计算机对图像信息进行处理的一门技术,使利用计算机对图像进行各种处理的技术和方法。
20世纪20年代,图像处理首次得到应用。20世纪60年代中期,随电子计算机的发展得到普遍应用。60年代末,图像处理技术不断完善,逐渐成为一个新兴的学科。利用数字图像处理主要是为了修改图形,改善图像质量,或是从图像中提起有效信息,还有利用数字图像处理可以对图像进行体积压缩,便于传输和保存。数字图像处理主要研究以下内容:傅立叶变换、小波变换等各种图像变换;对图像进行编码和压缩;采用各种方法对图像进行复原和增强;对图像进行分割、描述和识别等。随着技术的发展,数字图像处理主要应用于通讯技术、宇宙探索遥感技术和生物工程等领域。
傅里叶变换在数字图像处理中广泛用于频谱分析,傅里叶变换是线性系统分析的一个有力工具,它使我们能够定量地分析诸如数字化系统,采样点,电子放大器,卷积滤波器,噪声,显示点等地作用(效应)。傅里叶变换(FT)是数字图像处理技术的基础,其通过在时空域和频率域来回切换图像,对图像的信息特征进行提取和分析,简化了计算工作量,被喻为描述图像信息的第二种语言,广泛应用于图像变换,图像编码与压缩,图像分割,图像重建等。因此,对涉及数字图像处理的工作者,深入研究和掌握傅里叶变换及其扩展形式的特性,是很有价值得。
(2)关于傅里叶(Fourier)变换
在信号处理中,傅里叶变换可以将时域信号变到频域中进行处理,因此傅里叶变换在信号处理中有着特殊重要的地位。
2
沈阳理工大学数字图像处理报告
傅里叶变换能将满足一定条件的某个函数表示成三角函数(正弦和/或余弦函数)或者它们的积分的线性组合。在不同的研究领域,傅里叶变换具有多种不同的变体形式,如连续傅里叶变换和离散傅里叶变换。傅里叶变换属于谐波分析。傅里叶变换的逆变换容易求出,而且形式与正变换非常类似;正弦基函数是微分运算的本征函数,从而使得线性微分方程的求解可以转化为常系数的代数方程的求解.在线性时不变的物理系统内,频率是个不变的性质,从而系统对于复杂激励的响应可以通过组合其对不同频率正弦信号的响应来获取; 卷积定理指出:傅里叶变换可以化复杂的卷积运算为简单的乘积运算,从而提供了计算卷积的一种简单手段; 离散形式的傅里叶变换可以利用数字计算机快速的算出(其算法称为快速傅里叶变换算法(FFT)).
(3)傅里叶(Fourier)变换基本性质
a.线性性质
两函数之和的傅里叶变换等于各自变换之和。数学描述是:若函数f \\left ( x\\right )和g \\left(x \\right)的傅里叶变换\\mathcal[f]和\\mathcal[g]都存在,α 和 β 为任意常系数,则\\mathcal[\\alpha f+\\beta g]=\\alpha \\ mathcal[f]+\\beta\\mathcal[g];傅里叶变换算符\\mathcal可经归一化成为么正算符;
b.频移性质
若函数f \\left( x\\right )存在傅里叶变换,则对任意实数 ω0,函数f(x) e^{i \\omega_ x}也存在傅里叶变换,且有\\mathcal[f(x)e^{i \\omega_ x}]=F(\\omega + \\omega _0 ) 。式中花体\\mathcal是傅里叶变换的作用算子,平体F表示变换的结果(复函数),e 为自然对数的底,i 为虚数单位\\sqrt;
3
沈阳理工大学数字图像处理报告
c.微分关系
若函数f \\left( x\\right )当|x|\\rightarrow\\infty时的极限为0,而其导函数f'(x)的傅里叶变换存在,则有\\mathcal[f'(x)]=-i \\omega \\mathcal[f(x)],即导函数的傅里叶变换等于原函数的傅里叶变换乘以因子--iω 。更一般地,若
f(\\pm\\infty)=f'(\\pm\\infty)=\\ldots=f^{(k-1)}(\\pm\\infty)=0,\\mathcal[f^{(k)}(x)]存在,则\\mathcal[f^{(k)}(x)]=(-i \\omega)^ \\mathcal[f] ,即 k 阶导数的傅里叶变换等于原函数的傅里叶变换乘以因子( − iω)k。
d.卷积特性
若函数f \\left( x\\right )及g \\left( x\\right )都在(-\\infty,+\\infty)上绝对可积,则卷积函数f*g=\\int_{-\\infty}^{+\\infty} f(x-\\xi)g(\\xi)d\\xi的傅里叶变换存在,且\\mathcal[f*g]=\\mathcal[f]\\cdot\\mathcal[g] 。卷积性质的 逆形式为\\mathcal^[F(\\omega)G(\\omega)]= \\mathcal^[F(\\omega)] *\\mathcal^
[G(\\omega)] ,即两个函数乘积的傅里叶逆变换等于它们各自的傅里叶逆变换的卷积。
(4)傅里叶变换的不同变种
a..连续傅里叶变换
一般情况下,若“傅立叶变换”一词的前面未加任何限定语,则指的是“连续傅里叶变换”。“连续傅里叶变换”将平方可积的函数f(t) 表示成复指数函数的积分或级数形式。f(t)=\\mathcal^[F(\\omega)]=\\frac{\\sqrt{2\\pi}} \\int\\limits_{-\\infty}^\\infty F(\\omega) e^{i\\omega t}\\,d\\omega. 上式其实表示的是连续傅里叶变换的逆变换,即将时间域的函
4
沈阳理工大学数字图像处理报告
数f(t)表示为频率域的函数F(ω)的积分。反过来,其正变换恰好是将频率域的函数F(ω)表示为时间域的函数f(t)的积分形式。一般可称函数f(t)为原函数,而称函数F(ω)为傅里叶变换的像函数,原函数和像函数构成一个傅立叶变换对(transform pair)。一种对连续傅里叶变换的推广称为分数傅里叶变换(Fractional Fourier Transform)。当f(t)为奇函数(或偶函数)时,其余弦(或正弦)分量将消亡,而可以称这时的变换为余弦转换(cosine transform) 或 正弦转换(sine transform).
另一个值得注意的性质是,当f(t) 为纯实函数时,F(−ω) = F(ω)*成立.
b..傅里叶级数
连续形式的傅里叶变换其实是傅里叶级数的推广,因为积分其实是一种极限形式的求和算子而已。对于周期函数,其傅里叶级数是存在的:f(x) = \\sum_{n=-\\infty}^{\\infty} F_n \\,e^ , 其中Fn 为复振幅。对于实值函数,函数的傅里叶级数可以写成:f(x) = \\fraca_0 + \\sum_{n=1}^\\inf ty\\left[a _n\\cos(nx)+b_n\\sin(nx)\\right],其中an和bn是实频率分量的振幅。
c..离散时间傅里叶变换
离散傅里叶变换是离散时间傅里叶变换(DTFT)的特例(有时作为后者的近似)。DTFT在时域上离散,在频域上则是周期的。DTFT可以被看作是傅里叶级数的逆。
d..离散傅里叶变换
为了在科学计算和数字信号处理等领域使用计算机进行傅里叶变换,必须将函数xn
5
沈阳理工大学数字图像处理报告
定义在离散点而非连续域内,且须满足有限性或周期性条件。这种情况下, 使用离散傅里叶变换,将函数 xn 表示为下面的求和形式:x_n = \\frac1 \\sum_{k=0}^ X_k e^{i\\frac{2\\pi} kn} \\qquad n = 0,\\dots,N-1 其中Xk是傅里叶振幅。直接使用这个公式计算的计算复杂度为\\mathcal(n^2),而快速傅里叶变换(FFT)可以将复杂度改进为\\mathcal(n \\log n)。计算复杂度的降低以及数字电路计算能力的发展使得DFT成为在信号处理领域十分实用且重要的方法。在阿贝尔群上的统一描述以上各种傅里叶变换可以被更统一的表述成任意局部紧致的阿贝尔群上的傅里叶变换。这一问题属于调和分析的范畴。在调和分析中, 一个变换从一个群变换到它的对偶群(dual group)。此外,将傅里叶变换与卷积相联系的卷积定理在调和分析中也有类似的结论。傅里叶变换的广义理论基础参见庞特里雅金对偶性(英文版)中的介绍。
e.时频分析变换
小波变换,chirplet转换和分数傅里叶转换试图得到时间信号的频率信息。同时解析频率和时间的能力在数学上受不确定性原理的限制。
傅里叶变换是一种函数的正交变换,如果将信号以函数来描述,正交变换的含义就是将一个函数分解成一组正交函数的线性组合。傅里叶正、逆变换的计算公式分别为:
F(j)f(t)ejtdt
逆变换:
1f(t)2jtF(j)•ed
6
沈阳理工大学数字图像处理报告
显然,对一个非周期信号,其频谱为连续谱。
对于二维信号,二维Fourier变换定义为:
j2(uxvy)F(u,v)f(x,y)edxdy
逆变换:
f(x,y)j2(uxvy)F(u,v)edudv
在数字图像处理领域中,f(x,y)可以用来表示一幅图像,而F(u,v)就表示该图像的频谱。
二维离散傅里叶变换为:
1F(m,n)N逆变换:
f(i,k)ei0k0N1N1j2(mik*n)NN
1f(i,k)NF(m,n)ei0k0N1N1j2(mik*n)NN
快速傅里叶变换(FFT)要达到的目的是,将前面所给出的傅里叶变换的计算公式,通过一定的整理之后,找到一个可以将复杂的连加运算转换为简单的两个数相加运算的重复的方法,已减小傅里叶变换的计算时间代价。
7
沈阳理工大学数字图像处理报告
经过傅里叶变换之后,可以获得原图像信号的频域分布情况。由于图像中不同特性的像素具有不同的频域特性,因此,可以在频域上设计相应的滤波器,以达到滤除某些信息,或者保留某些信息的目的。另外,因为傅里叶变换后,时域与频域形成了对偶运算关系,因此通过傅里叶变换也可以达到某些运算的简化目的。
2.应用软件MATLAB简介
MATLAB Compiler是一种编译工具,它能够将那些利用MATLAB提供的编程语言——M语言编写的函数文件编译生成标准的C/C++语言源文件,而生成的标准C/C++源代码可以被任何一种C/C++编译器编译生成函数库或者可执行文件,这样就可以扩展MATLAB功能,使MATLAB能够同其他高级编程语言(例如C/C++语言)进行混合应用,取长补短,以提高程序的运行效率,丰富程序开发的手段。
MATLAB除了能够和C/C++语言集成开发以外,目前的MATLAB还提供了和Java语言接口的能力,并且它还支持COM标准,能够和任何一种支持COM标准的软件协同工作。另外,在Release 13中,包含了MATLAB Compiler的扩展产品——MATLAB COM Builder和Excel Builder,分别用来将MATLAB的函数文件打包成COM组件或者Excel插件,将MATLAB应用程序算法集成到相应的开发工具或者应用软件中。
MATLAB的主要特点:(1)语言简洁紧凑,使用方便灵活,库函数极其丰富。(2)运算符丰富。由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短。(3)MATLAB既具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性。(4)程序限制不严格,程序设计自由度大。例如,在MATLAB里,用户无需对矩阵预定义就可使用。(5)程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操
8
沈阳理工大学数字图像处理报告
作系统上运行。(6)MATLAB的图形功能强大。在FORTRAN和C语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。MATLAB还具有较强的编辑图形界面的能力。(7)MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢。由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。(8)功能强大的工具箱是MATLAB的另一特色。(9)源程序的开放性。开放性也许是MATLAB最受人们欢迎的特点。除内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加入自己的文件构成新的工具箱。
四.设计步骤
(1)打开计算机,安装和启动MATLAB程序;程序组中“work”文件夹中应有待处理的图像文件
(2)利用MatLab工具箱中的函数编制FFT频谱显示的函数
(3)调入、显示获得的图像,图像存储格式应为“.tif”
(4)对该程序进行编译,检查错误并纠正
(5)运行,并显示结果,比较差异
五.程序代码
i=imread('cameraman.tif'); %读入原图像文件
9
沈阳理工大学数字图像处理报告
figure(1); %设定窗口
imshow(i); %显示原图像
colorbar; %显示图像的颜色条
title('原图像') %图像命名
j=fft2(i); %二维离散傅立叶变换
k=fftshift(j); %直流分量移到频谱中心
l=log(abs(k)); %数字图像的对数变换
figure(2); %设定窗口
imshow(l,[]); %显示原图像
colorbar; %显示图像的颜色条
title('经过二维快速傅立叶变换后的图像') %图像命名
n=ifft2(j)/255; %逆二维快速傅里叶变换
figure(3); %设定窗口
10
沈阳理工大学数字图像处理报告
imshow(n); %显示原图像
colorbar; %显示图像的颜色条
title('经过二维快速傅立叶逆变换后的图像') %图像命名
m=fftshift(j); %直流分量移到频谱中心
RR=real(m); %取傅立叶变换的实部
II=imag(m); %取傅立叶变换的虚部
A=sqrt(RR.^2+II.^2); %计算频谱幅值
A=(A-min(min(A)))/(max(max(A))-min(min(A)))*225;%归一化
figure(4); %设定窗口
imshow(A); %显示原图像
colorbar; %显示图像的颜色条
title('离散傅立叶频谱'); %图像命名
六.运行结果
11
沈阳理工大学数字图像处理报告
对源代码检查无误后,进行运行,结果如下:
图1为输入的原图像,图2为经过二维快速傅立叶变换后的图像,图3为经过二维快速傅立叶逆变换后的图像,图4为离散傅立叶频谱,通过这四幅图可以看出一幅图片经过不同类型的傅里叶变换后,能够达到不同的处理效果。
图1 输入的原图像
12
沈阳理工大学数字图像处理报告
图2 经过二维快速傅立叶变换后的图像
13
沈阳理工大学数字图像处理报告
图3 经过二维快速傅里叶逆变换后的图像
图4 离散傅立叶频谱
七.结果分析
傅里叶变换(FT)是数字图像处理技术的基础,其通过在时空域和频率域来回切换图像,对图像的信息特征进行提取和分析,简化了计算工作量,被喻为描述图像信息的第二种语言,广泛应用于图像变换,图像编码与压缩,图像分割,图像重建等。
经过傅里叶变换之后,可以获得原图像信号的频域分布情况,经过逆变换后又会恢复到原图像,但图像的灰度值发生了变化。二维傅里叶变换可以处理较为复杂的图像,快速傅里叶变换会使运算相对简单化,图像经过离散傅立叶变换会得到该图像的频谱图。图像经过傅立叶变换后,得到的是图像的频域。也就是频率成分。 这个频率成分表示的意义就
14
沈阳理工大学数字图像处理报告
是相邻像数之间数值(颜色,亮度等等)的变化,也就是说图像在空间上变化的越快,他对应在频域上的数值就越大。 图像经过傅立叶变换后可以提取图像的轮廓或者边界。
八.参考文献
1.王家文 MATLAB 6.5 图形图像处理 国防工业出版社
2.王晓丹,吴崇明编著 基于MATLAB的系统分析与设计 [5] 图像处理 西安电子科技大学出版社 2000
3.余成波编著 数字图像处理及MATLAB实现 重庆大学出版社 2003
4.郝文化主编 MATLAB图形图像处理应用教程 中国水利水电出版社 2004
5.苏金明, 王永利编著 MATLAB图形图像电子工业出版社 2005
15
因篇幅问题不能全部显示,请点此查看更多更全内容