有点悲剧,在快编辑完了的时候不小心点到舍弃,结果一下午字白打了。
傅里叶变换被称为数学中的棱镜,可以将函数分解为频率不同的正弦函数和余弦函数的组合。而图像处理中的傅里叶变换一般专指二维离散傅里叶变换,它可以将图像从空间域变换到频域,拥有很多优良的特质,如线性、对称、平移、卷积等。在此,我们对于一维以及连续的傅里叶变换不做描述,只说二维离散傅里叶变换。
二维离散傅里叶变换
人们一般都在空间域来描述图像,即通过二维空间坐标上的灰度值来表征出图像的形状、纹理、尺寸等特征,这也是最为直观且被人所接受的图像表达方式。而傅里叶变换的出现给了图像分析一个全新的角度:频域。在二维图像角度,频率的高低表征的是原图灰度的变化剧烈程度,也就是空间域中所指的梯度。背景区域等灰度变化缓慢的区域,梯度较低,处于频域中的低频部分,边缘、噪声等灰度变化快的区域,梯度较高,处于频域中的高频部分。一般的图片低频的内容会占大多数部分。
二维离散傅里叶变换公式:
其中F(u,v)为傅里叶变换结果,u和v为频率分量,f(x,y)为原图,M和N为图像的宽度和高度。
特例:当u,v均为0时,F(0,0)的值为原图f(x,y)的均值,虚部为0,被称之为直流分量。
计算得到的结果为复数,分为实部和虚部,图像处理中一般求取其模(频率幅值),并反向投影回以u,v为坐标轴的二维空间进行分析。
|F(u,v)| = sqrt(R(u,v)^2+I(u,v)^2)
其中R(u,v)和I(u,v)分别为实部和虚部。
由于求取的频率幅值跨幅巨大,并不适合直接反向投影回二维图像空间来观察,所以一般会将结果求取对数,将结果从线性尺度变换到对数尺度:
D(u,v) = log(1+|F(u,v)|)
再进行归一化后即可以灰度值的方式直观的看到幅值的高低变化,即图像的频谱图。
另外,基于傅里叶变换的对称性,为了便于观察频谱图,一般会将原点F(0,0)平移到图像中心,使得低频区域位于图像中部,高频区域位于图像外围。
实现方式有两种:
(1):将原图f(x,y)乘以(-1)^(x+y)后再做傅里叶变换
(2):直接做傅里叶变换,之后将频谱图以N/2,M/2为线划分成四个区域,位于对角线的两两区域对调位置,如图:
一张图像在变换到频域后的成分分布可以参考下图:
傅里叶变换在图像处理中的应用
个人能想到的利用场景有如下:
1.图像去噪
正如前文所述,大部分的噪声是位于图像的高频区域,所以,利用低通滤波器来过滤图像噪声是图像去噪的一个重要手段。另外,一些周期噪声反映到频谱上会呈现出孤立的亮点,利用傅里叶变换可以轻松的将这种噪声过滤掉,如下图所示:
2.简化卷积运算
利用傅里叶变换的卷积特性(即空间域中的卷积等于频域的点积,频域的卷积等于空间域的点积),可以有效的简化空间域中的卷积运算,如各类滤波器的卷积操作等,在变换到频域后采用与该滤波器等价的频域函数进行点积运算,再反傅里叶变换回空间域即完成了空间域中的卷积运算。
3.寻找直线轮廓
空间域中的直线在变换到频域后会呈现出一条与之垂直的高亮直线(有时也可能不那么明显),利用这个特性可以找到原图中疑似直线的轮廓及其角度(以前有做过一个项目就通过傅里叶变换来进行图像的倾斜矫正),效果图:
lena的帽檐在频谱图中对应了一条与之垂直的亮线。
4.图像压缩
如上文所述,图像的大部分信息集中在频域的低频部分,所以图像的压缩、提萃也是可以用到傅里叶变换的。