Fourier Transform 3 (2D DFT, Image)
二维离散傅里叶变换
分量形式
设
矩阵形式
同一维情形类似,我们也可以将二维 DFT 写作矩阵形式。视
性质
二维 DFT 的大部分性质可类比一维 DFT 的性质推广而来。
平移性质:设
旋转性质:使用极坐标:
周期性:
共轭对称性:若
频谱和功率谱:由于 DFT 是复函数,因此可以用极坐标表示:
二维循环卷积定理:设
其中卷积依旧是循环卷积。
图像的频域滤波
图像的空间域与频域
前文中我们研究的一元函数可以看作是时域信号,但是对于图像而言,时域信号这个说法显然不合适了。那应该怎么理解呢?
首先,一幅数字图像其实是一个二元函数
与时域信号类似,我们可以用无数个二维的不同角频率的正余弦函数去近似一幅图像。其中,图像变化比较剧烈的地方——比如边缘、纹理等细节,需要依靠高频的正余弦函数去拟合;相反,图像大体的构图就对应低频的正余弦函数。因此,我们经常把图像的细节称作高频分量,而整体构图称作低频分量。
对图像做二维离散傅里叶变换就得到了其频域表示,将频域表示的频谱可视化出来就是频谱图。频域滤波指在频谱图上使用一个滤波器对图像做滤波的过程。然而,出于可视化、浮点误差等考虑,下面我们关注对图像做频域滤波时一些值得注意的方面。
循环卷积与交叠误差
根据循环卷积定理,在空间域中做循环卷积等价于在频域中做乘法。然而,我们在图像处理中使用的卷积通常是 padding 0 的卷积,两种卷积方式导致的结果差别就是所谓的交叠误差。
幸运的是交叠误差很容易解决。设
频谱图的可视化:中心化与对数变换
我们知道
另外,由于
浮点误差
理论上,傅里叶变换和逆变换是一对可逆操作,但是由于计算机存在浮点误差,实际操作中数值也许会稍有扰动。例如,数字图像原本是实值函数,在傅里叶变换到频域后执行某些滤波操作,然后傅里叶逆变换后理应得到实值函数,但实际中可能存在很小的虚部。因此,我们常常需要在逆变换后增加一个取实部的操作。
频域滤波步骤
根据上文的讨论,在对图像进行频域滤波时有如下步骤:
- 对于
的图像 ,取 ; - 将原图零填充到
大小,得到 ; - 对
乘以 ,为频谱图的中心化做准备; - 计算二维离散傅里叶变换
; - 构造大小为
的频域滤波器 ; - 进行频域滤波:
; - 计算傅里叶逆变换,取实部并将
乘回来: ; - 取
左上角 区域 ,得到最终结果。
参考资料
- Rafael C. Gonzalez. Digital Image Processing, Fourth Edition. ↩︎