欢迎关注我的博客专栏“图像处理中的数学原理详解”
全文目录请见 图像处理中的数学原理详解(总纲)
http://blog.csdn.net/baimafujinji/article/details/48467225
http://blog.csdn.net/baimafujinji/article/details/48751037
交流学习可加图像处理研究学习QQ群(529549320)
傅立叶变换以高等数学(微积分)中的傅立叶级数为基础发展而来,它是信号处理(特别是图像处理)中非常重要的一种时频变换手段,具有重要应用。在图像编码、压缩、降噪、数字水印方面都有重要意义。此外,快速傅立叶变换算法还位列20世纪十大算法之列,它是“动态规划”策略在算法设计中的杰出代表。本文将详细介绍图像中的傅立叶变换及其快速算法。对于傅立叶变换的数学原理还不是很理解的同学,建议参考本系列前面已经发布的傅立叶级数相关内容,争取彻底搞懂相关数学原理。一知半解、不求甚解,都是自欺欺人的表现。
6.1.2 数字图像的傅立叶变换
为了在科学计算和数字信号处理等领域使用计算机进行傅立叶变换,必须将函数f(t)定义在离散点而非连续域内,且须满足有限性或周期性条件。这种情况下,使用离散傅立叶变换。将连续函数f(t)等间隔采样就得到一个离散序列f(x),假设采样N次,则这个离散序列可以表示为{f(0),f(1),f(2),...,f(N-1)}。如果令x为离散实变量,u为离散频率变量,则一维离散傅立叶变换的正变换定义为
图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度。从傅立叶频谱图上看到的明暗不一的亮点,实际上图像上某一点与邻域点差异的强弱,即梯度的大小,也即该点的频率的大小(可以这么理解,图像中的低频部分指低梯度的点,高频部分相反)。通常,梯度大则该点的亮度强,否则该点亮度弱。这样通过观察傅立叶变换后的频谱图,也叫功率图。在功率图中我们可以看出图像的能量分布,如果频谱图中暗的点数更多,那么实际图像是比较柔和的(因为各点与邻域差异都不大,梯度相对较小),反之,若频谱图中亮的点数多,那么实际图像一定是尖锐的,边界分明且边界两边像素差异较大的。对频谱移频到原点以后,可以看出图像的频率分布是以原点为圆心,对称分布的。变换最慢的频率成分(u = v = 0)对应一幅图像的平均灰度级。当从变换的原点移开时,低频对应着图像的慢变换分量,较高的频率开始对应图像中变化越来越快的灰度级。这些是物体的边缘和由灰度级的突发改变(如噪声)标志的图像成分。通常在进行傅立叶变换之前用(-1)^(x+y)乘以输入的图像函数,这样便可将傅立叶变换的原点(0,0)移到(M/2,N/2)上。
6.1.3 快速傅立叶变换的算法
离散傅立叶变换(DFT)已经成为数字信号处理和图像处理的一种重要手段,但是DFT的计算量太大,速度太慢,这令其实用性大打折扣。1965年,Cooley和Tukey提出了一种快速傅立叶变换算法(Fast Fourier Transform,FFT),极大地提供了傅立叶变换的速度。正是FFT的出现,才使得傅立叶变换得以广泛地应用。
FFT并不是一种新的变换,它只是傅立叶变换算法实现过程的一种改进。FFT中比较常用的是蝶形算法。蝶形算法主要是利用傅立叶变换的可分性、对称性和周期性来简化DFT的运算量。下面就来介绍一下蝶形算法的基本思想。
由于二维离散傅立叶变换具有可分离性, 即它可由两次一维离散傅立叶变换计算得到,因此仅研究一维离散傅立叶变换的快速算法即可。一维离散傅立叶变换的公式为
上述FFT是将f(x)序列按x的奇偶进行分组计算的,称之为时间抽选FFT。如果将频域序列的F(u)按u的奇偶进行分组计算,也可实现快速傅立叶计算,这称为频率抽选FFT。
通过对图6-6的观察可以发现,蝶形算法的频率域是按照正常顺序排列的,而空间域是按照一种叫做“码位倒序”的方式排列的。这个倒序的过程可以采用下面的方法来实现:将十进制的数转化成二进制,然后将二进制的序列倒序重排,最后再把颠倒顺序后的二进制数转换成十进制数。倒序重排的程序是一段经典程序,它以巧妙的构思、简单的语句用完成了倒序重排的功能。表6-1给出了倒序重排的示例。