图形学FFmpeg与音视频流媒体工程开发相关

图像傅里叶变换(二维离散傅里叶变换)

2017-01-31  本文已影响14890人  Code_r_Wang

应用:二维离散傅里叶变换是将图像从空间域转至频域,在图像增强、图像去噪、图像边缘检测、图像特征提取、图像压缩等等应用中都起着极其重要的作用。
理论基础:任意函数都可以表示成正弦函数的线性组合的形式。
二维离散傅里叶变换公式如下:

二维离散傅里叶变换公式(指数表示方法)

式中 f(x,y) 代表一幅大小为 M x N 的矩阵,其中 x = 0,1,2,···,M-1y = 0,1,2,···,N-1F(u,v) 表示 f(x,y) 的傅里叶变换。可以转换为三角函数表示方法,其中 uv 可用于确定正余弦的频率F(u,v) 所在坐标系被称为频域,由 u = 0,1,2,···,M-1v = 0,1,2,···,N-1 定义的 M x N 矩阵常称为频域矩阵。f(x,y) 所在坐标系被称为空间域, 由 x = 0,1,2,···,M-1y = 0,1,2,···,N-1 所定义的 M x N 矩阵常被称为空间域矩阵。显然频域矩阵的大小与原空间域矩阵大小相同。
频域矩阵中每个点的都代表了一个频率为 u,v 的函数,这些函数在空间域的组合即为原函数 f(x,y)。

二维离散傅里叶逆变换公式如下:

二维离散傅里叶逆变换公式(指数表示方法)

其中 x = 0,1,2,···,M-1 和 y = 0,1,2,···,N-1。因此,给定 F(u,v) 就可以通过逆 DFT 得到 f(x,y)。
在频域原点处的值 F(0,0) 被称为傅里叶变换的直流(dc)分量,该术语源自电气工程学,意指直流电(频率为 0 的电流)。F(0,0) 等于 f(x,y) 的平均值的 MN 倍。
即使 f(x,y) 是实数,F(u,v) 通常也是复数。直观的分析一个变换的主要方法是计算它的频谱 [F(u,v) 的幅度] ,并将其显示为一幅图像。令 R(u,v) 和 I(u,c) 分别表示 F(u,v) 的实部和虚部,则傅里叶频谱定义为:

傅里叶频谱定义

变换的相位角定义:

相位角定义

指数表示:

指数表示

功率谱定义:

功率谱

通过二维离散傅里叶变换公式可以看出,若 f(x,y) 是实数,那么其傅里叶变换 F(u,v) 关于原点共轭对称

共轭对称

那么傅里叶变换幅值原点对称:


幅值原点对称

可得 DFT 周期性:

DFT 周期性

DFT 在u,v 方向上都是无穷的,周期由M和N决定。

可得 DFT 逆变换周期性:

逆变换周期性
傅里叶逆变换得到的图像也是周期无穷的。理论上的无穷,但在实际变换实现中,只需要计算一个周期矩阵即可。
注意:在计算出的二维频率矩阵后,通常为了简化频谱的视觉分析,会将原点的变换值移动到频率矩形的中心,在二维傅里叶变换之前对f(x,y) 乘以(-1)的 x+y 次方可以完成该变换。在实际处理中,只需要对生成的频率矩阵以中心(M/2,N/2)进行对角矩阵的交换即可。

在编程中的实践具体请看我在简书的另一篇文章《与OpenCV的第十天》

上一篇下一篇

猜你喜欢

热点阅读