图像中的傅立叶变换(二)

上一篇文章讲了傅立叶变换的本质。这篇文章会总结一下傅立叶变换的常用性质,公式巨多,慎入!慎入!

相关概念

首先,回顾一下傅立叶变换的公式: \[ F(u)=\frac{1}{M}\sum_{x=0}^{M-1}f(x)e^{-2j\pi (ux/M)} \]

频谱(spectrum)

由上面的公式可以看出,傅立叶变换得到的系数 \(F(u)\) 是一个复数,因此可以表示为:\(F(u)=R(u)+jI(u)\),其中,\(R(u)\) 是实部,\(I(u)\) 是虚部。傅立叶变换的频谱被定义为: \[ |F(u)|=\sqrt{R^2(u)+I^2(u)} \]

相位谱(phase)

根据欧拉公式,我们知道 \(R(u)\) 代表的是一个余弦值,而 \(I(u)\) 则是正弦值。如果把 \(F(u)\) 看作一个向量 \((R(u), I(u))\),则这个向量的夹角为 \(\phi(u)=\arctan{[\frac{I(u)}{R(u)}]}\)。这个夹角也被称为相位谱

能量谱(power)

能量谱其实就是频谱的平方:\(P(u)=|F(u)|^2=R^2(u)+I^2(u)\)

常用性质

周期性

所谓周期性,即: \[ F(u,v)=F(u+M,v)=F(u,v+N)=F(u+M,v+N) \] 证明如下: \[ \begin{eqnarray} F(u+M,v+N)&=&\frac{1}{MN}\sum_{x=0}^{M-1}\sum_{y=0}^{N-1}f(x,y)e^{-j2\pi [(u+M)x/M+(v+N)/N]} \\ &=&\frac{1}{MN}\sum_{x=0}^{M-1}\sum_{y=0}^{N-1}f(x,y)e^{-j2\pi [(u+M)x/M+(v+N)y/N]} \\ &=&\frac{1}{MN}\sum_{x=0}^{M-1}\sum_{y=0}^{N-1}f(x,y)e^{-j2\pi (ux/M+vy/N)}e^{-j2\pi (x+y)} \end{eqnarray} \] 注意,\(e^{-j2\pi (x+y)}={(e^{-j2\pi})}^{x+y}=1^{(x+y)}=1\),所以 \[ F(u+M,v+N)=\frac{1}{MN}\sum_{x=0}^{M-1}\sum_{y=0}^{N-1}f(x,y)e^{-j2\pi (ux/M+vy/N)}=F(u,v) \] 类似地,可以推出 \[ f(x,y)=f(x+M,y)=f(x,y+N)=f(x+M,y+N) \]

共轭对称性

回忆一下,在复数域中,共轭指的是虚部取反。即 \(z=x+jy\) 的共轭是 \(z*=x-jy\)

在傅立叶变换中,存在以下共轭对称性: \[ F(u,v)=F*(-u,-v) \] 证明如下: \[ \begin{eqnarray} F*(-u,-v)&=&\frac{1}{MN}\sum_{x=0}^{M-1}\sum_{y=0}^{N-1}f(x,y)e^{ux/M+vy/N} \\ &=&\frac{1}{MN}\sum_{x=0}^{M-1}\sum_{y=0}^{N-1}f(x,y)[\cos{[2\pi (ux/M+vy/N)]}-j\sin{[2\pi(ux/M+vy/N)]}] \text{(注意共轭)} \\ &=&F(u,v) \end{eqnarray} \] 那么这个性质有什么用呢?注意,\(|F*(-u,-v)|=|F(-u,-v)|\),换句话说,\(|F(u,v)|=|F(-u,-v)|\)

要知道,\(|F(u,v)|\) 表示的是傅立叶频谱图,所以,共轭对称性表明,傅立叶的频谱图是中心对称的。

具体地,下图所示的傅立叶频谱图,四个对角上的能量是沿图片中心对称的。

平移性

平移性指的是: \[ f(x-x_0,y-y_0) \Leftrightarrow F(u,v)e^{-j2\pi (ux_0/M+vy_0/N)} \tag{1} \] 这个等价关系的意思是说,如果原图 \(f(x,y)\) 平移了 \((x_0,y_0)\) 个单位,那么平移后的图像对应的傅立叶变换为 \(F(u,v)e^{-j2\pi (ux_0/M+vy_0/N)}\),即在原来 \(F(u,v)\) 的基础上乘上 \(e^{-j2\pi (ux_0/M+vy_0/N)}\)

这个公式的证明很简单。平移前的公式为: \[ f(x,y)=\sum_{u=0}^{M-1}\sum_{v=0}^{N-1}F(u,v)e^{j2\pi (ux/M+vy/N)} \] 现在,原图的像素由 \((x,y)\) 平移到 \((x-x_0,y-y_0)\),因此,我们只需要将 \((x-x_0,y-y_0)\) 代入上式即可: \[ \begin{eqnarray} f(x-x_0,y-y_0)&=&\sum_{u=0}^{M-1}\sum_{v=0}^{N-1}F(u,v)e^{j2\pi [(x-x_0)u/M+(y-y_0)v/N]} \\ &=&\sum_{u=0}^{M-1}\sum_{v=0}^{N-1}F(u,v)e^{-j2\pi(ux_0/M+vy_0/N)}e^{j2\pi (ux/M+vy/N)} \end{eqnarray} \] 在保持原来的基底向量不变的情况下,我们只需要将傅立叶系数变成 \(F(u,v)e^{-j2\pi(ux_0/M+vy_0/N)}\) 即可。

同样的,如果频谱图发生平移,有如下关系成立: \[ F(u-u_0,v-v_0)\Leftrightarrow f(x,y)e^{j2\pi (u_0 x/M+v_0 y/N)} \tag{2} \] 证明的方法是类似的。

从平移关系中,我们可以得到一个很好的性质。注意,在复数中,有这样两个等式成立 \(|e^{aj}e^{bj}|=|e^{aj}||e^{bj}|\)\(|e^{jx}|=1\)(不懂的请复习复数相关的内容)。应用到上面的结论,即 \(|F(u,v)e^{-j2\pi (ux_0/M+vy_0/N)}|=|F(u,v)|\)。换句话说,原图平移后,傅立叶频谱图不变。

例如,对于下面两幅图(为了保持图片大小不变,我们在图片外围补了一层 ‘0’ 边界):

它们对应的傅立叶频谱图都是这个样子的:

注意,四个角上的白点代表低频信号的分量。

另外,我们平时经常用的中心化操作也依赖于平移性和周期性。

所谓中心化,就是将频谱图平移 \((M/2, N/2)\) 个单位。由平移性的公式 (2),可以得到: \[ \begin{eqnarray} F(u-\frac{M}{2},v-\frac{N}{2}) &\Leftrightarrow& f(x,y)e^{j2\pi (\frac{1}{2}x+\frac{1}{2}y)} \\ &=&f(x,y)e^{j\pi(x+y)} \\ &=&f(x,y){e^{j\pi}}^{(x+y)} \\ &=&f(x,y)(-1)^{x+y} \end{eqnarray} \] 所以,我们只要对原图的每个像素乘以 \((-1)^{x+y}\),然后进行傅立叶变换,这样得到的频谱图便是中心化后的频谱图了。

如果对上一幅频谱图中心化,则可以得到:

这么做的目的是为了方便肉眼观察。中心化后,频谱图中心对应的便是低频分量,远离中心的,则是高频分量。

卷积定理

卷积定理表述为: \[ f(x,y)*h(x,y) \Leftrightarrow F(u,v)H(u,v) \\ F(u,v)*H(u,v) \Leftrightarrow f(x,y)h(x,y) \] (注意,右边式子表示的是矩阵的点乘运算,而不是矩阵乘法)

它的意思是说,在空间域内进行卷积运算,跟把它们转换到频率域再进行点乘运算,效果是等价的。

要证明这个定理,首先要知道卷积的定义(关于卷积的定义,可以参考这篇知乎的回答): \[ f(x,y)*h(x,y)=\sum_{m=0}^{M-1}\sum_{n=0}^{N-1}f(m,n)h(x-m,y-n) \] 然后,我们对等式两边同时进行傅立叶变换(注意,傅立叶变换是针对x、y进行的,m、n相关的式子可以看作常数): \[ \begin{eqnarray} F[f(x,y)*h(x,y)]&=&F[\sum_{m=0}^{M-1}\sum_{n=0}^{N-1}f(m,n)h(x-m,y-n)] \\ &=&\sum_{m=0}^{M-1}\sum_{n=0}^{N-1}f(m,n)F[h(x-m,y-n)] \\ \end{eqnarray} \] 由之前的平移性,我们知道:\(h(x-m,y-n)\Leftrightarrow H(u,v)e^{-j2\pi (um/M+vn/N)}\) 。所以上式中的 \(F[h(x-m,y-n)]=H(u,v)e^{-j2\pi (um/M+vn/N)}\),这样,我们便得到: \[ \begin{eqnarray} F[f(x,y)*h(x,y)]&=&\sum_{m=0}^{M-1}\sum_{n=0}^{N-1}f(m,n)F[h(x-m,y-n)] \\ &=&\sum_{m=0}^{M-1}\sum_{n=0}^{N-1}f(m,n)H(u,v)e^{-j2\pi (um/M+vn/N)} \\ &=&\sum_{m=0}^{M-1}\sum_{n=0}^{N-1}f(m,n)e^{-j2\pi (um/M+vn/N)} H(u,v) \\ &=&F(u,v)H(u,v) \end{eqnarray} \]

上面的 \(\sum_{m=0}^{M-1} \sum_{n=0}^{N-1} f(m,n)e^{-j2\pi (um/M+vn/N)}\) 刚好凑成一个傅立叶变换 \(F(u,v)\)。所以我们最终证明:\(f(x,y)*h(x,y) \Leftrightarrow F(u,v)H(u,v)\)

另一个式子 \(F(u,v)*H(u,v) \Leftrightarrow f(x,y)h(x,y)\) 的证明是类似的。

参考