什么是傅里叶变换?
傅里叶变换,最牛的算法之一,广泛应用于物理学、信号处理、概率、统计、密码学、声学、光学等领域。
有人说,看懂了傅里叶,也就看懂了世界,能改变一个人对世界的认知。
我们眼中的世界就像皮影戏的大幕布,幕布的后面有无数的齿轮,大齿轮带动小齿轮,小齿轮再带动更小的。在最外面的小齿轮上有一个小人——那就是我们自己。我们只看到这个小人毫无规律地在幕布前表演,却无法预测他下一步会去哪。而幕布后面的齿轮却永远一直那样不停地旋转,永不停歇。这样说来有些宿命论的感觉。说实话,这种对人生的描绘是我一个朋友在我们都是高中生的时候感叹的,当时想想似懂非懂,直到有一天我学到了傅里叶…… ——知乎@Heinrich
这里我们不深究其中,无数学公式推导,仅为大众简单科普一下傅里叶变换是什么。傅里叶变换最精彩之处就是能够将信号在时域与频域之间进行变换,因此我们先解释一下什么是时域和频域。
①时域
时域(Time domain)是描述数学函数或物理信号对时间的关系,例如一个信号的时域波形可以表达信号随着时间的变化。比如下面这个时域图,1秒内反复振动了5次,频率是5,最大振幅是1,整图描述的是每一个时刻的信号值:
②频域
频域(frequency domain)是描述信号在频率方面特性时用到的一种坐标系,频域图显示了在一个频率范围内每个给定频带内的信号量。上面的时域图用频域表示,则是下图。横坐标表示频率,纵坐标表示振幅。这个图表示:这里面有一段波,频率为5,振幅为1。
另外,频域表示还可以包括每个正弦曲线的相位,以便能够重新组合频率分量以恢复原始时间信号。不同相位决定了波的位置,从频域信息复原到时域信息,相位非常重要。
红色和蓝色正弦波具有θ的相位差
傅里叶变换
先亮一下通用傅里叶公式。(“公式恐惧症”请闭眼滑过...)
傅里叶变换,从定义上讲,表示能将满足一定条件的某个函数表示成三角函数或者它们的积分的线性组合。简单来说,它贯穿了时域与频域,能够将任何形式的周期性信号无限拆解,分为多个有规律的简单正弦波信号。(正弦波是一个圆周运动在一条直线上的投影,所以频域的基本单元也可以理解为一个始终在旋转的圆。)
傅里叶级数方波圆动画
例如下面这种也是有规律的波形,可以拆解为若干组波的叠加。
也就是说,傅里叶变换能够将一段复杂的波,分解成多段规律的、单纯波的集合。然后,对这些规律的波从频域进行描述,就有了整段波的谱线图。
如下图,时域观测的方波信号是若干个正弦信号的叠加,当以时间为横轴时可以看到这些信号累加后得到的时域图像,而换一个角度,当以频率为坐标时,则得到的是一个个不同频率的脉冲。信号从时域到频域的转换,则是傅里叶正变换,从频率到时域的表示则是傅里叶逆变换。因此,时域和频域是以完全不同的角度表示相同的信息。(突然想吟诗一首:横看成岭侧成峰,远近高低各不同...)
很多在时域看似不可能做到的操作,在频域却很容易,这就是需要傅里叶变换的地方。尤其是从某条曲线中去除一些特定的频率成分,这在工程上称为滤波,是信号处理最重要的概念之一,只有在频域才能轻松的做到。例如在图像处理中,低频项决定了图像的整体形状,高频项则提供了细节,通过控制滤波器可以过滤掉不同频率的信息,从而决定输出的图像效果。
傅里叶变换处理图像的原理是什么?
现在我们知道了傅里叶变换能够将输入信号从时域转换到频域。 但对于静止图像,信号不是随着时间而变化的,而是以像素的形式呈现在空间维度,这样的像素域则称为空域。因此图像处理中的傅里叶变换是将空间域转换为频域。
那么,图像的频域是指什么呢?百度百科定义,“图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度”。通俗一点说,指的是图像中的色彩变化剧烈的程度,两点间RGB三值的差值越大,则变化越剧烈。变化剧烈的部分往往是“各种边缘”,大块大块的色彩往往储存着低频信息,而高频信息则储存在边缘之中。
例如,以下为在图像处理中使用快速傅里叶变换(FFT)的流程:
来自:作者Craig Chen
①实现快速傅立叶变换,将灰度图像转换为频域
②零频域部分的可视化与集中
③应用低/高通滤波器过滤频率
④离散
⑤实现快速傅里叶逆变换生成图像数据
①计算二维快速傅里叶变换。快速傅立叶变换(FFT)处理的结果是一个很难直接可视化的复数数组。因此,我们必须把它转换成二维空间:频谱(左)、相位角(右)
从频谱(左)可以看出,四个角上有一些对称图案。这些图案可以在下一步中转换到图像的中心。频谱图像中的白色区域显示出较高的频率。频谱图像中的角表示低频域。
②将零频域部分移到频谱中心。二维快速傅立叶变换(FFT)具有平移和旋转特性,因此我们可以在不丢失任何信息的情况下移动频谱,这种转换可以帮助我们轻松实现高通/低通滤波器。
③与步骤2相反,将零频域部分移回原位置。
④与步骤1相反,计算二维快速傅里叶逆变换。
③和④的过程是将频谱信息转换回灰度图像。它可以通过应用逆向移位和快速傅立叶变换(FFT)的逆运算来实现。
在理解了傅里叶变换背后的基本理论过程之后,是时候弄清楚如何操纵频谱输出来处理图像了,这里我们需要了解低通/高通滤波器。
低通滤波器
低通滤波器是一种只允许低频谱通过的滤波器。图像中的低频谱意味着像素值变化缓慢。例如,图像中颜色变化较小的平滑区域(如空白白纸的中心)被视为低频谱内容。由于低通滤波器的输出只允许低频通过,对噪声等高频谱内容进行了阻塞,使得处理后的图像具有较少的噪声像素。因此,低通滤波器被广泛应用于图像的去噪。
高通滤波器
相反,高通滤波器是只允许高频谱通过的滤波器。图像中的高频谱意味着像素值变化很大。例如,图像中颜色变化较大的边缘区域,如两张重叠的白纸和黑纸之间的边缘,被认为是高频谱内容。
在图像中,通过做适当的重复计算来锐化原图像,能用适当的重复计算来锐化原始图像的图像,从高通滤波器的输出可获得图像中的边缘。这将增强原始图像的清晰度,使边缘更加清晰。
以上就是傅里叶变换在图像处理中的基本原理,实际上大自然中的各种信号的大部分信息都集中在低频,而且人眼对低频更敏感,这也是傅里叶变换在图像处理中应用的意义。
另外,除了去噪、锐化等应用,在图像压缩方面,根据傅立叶变换推导出的DCT(离散余弦变换)也有非常重要的作用,JPEG格式的图片就是用Huffman编码方式压缩图片的DCT的系数。