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

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

相关概念

首先,回顾一下傅立叶变换的公式:

\[
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)\) 的证明是类似的。

参考

原文地址:https://www.cnblogs.com/jermmyhsu/p/8250997.html

时间: 2024-10-10 00:51:17

图像中的傅立叶变换(二)的相关文章

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

关于傅立叶变换,知乎上已经有一篇很好的教程,因此,这篇文章不打算细讲傅立叶的物理含义,只是想从图像的角度谈一谈傅立叶变换的本质和作用. 本文假设读者已经熟知欧拉公式: \[ e^{j\pi x}=\cos{\pi x}+j\sin{\pi x} \] 并且知道高数课本中给出的傅立叶变换公式: \[ f(x) - \frac{a_0}{2}+\sum_{n=1}^{\infty}{[a_n \cos{nx}+b_n\sin{nx}]} \] 其中 \(a_n=\frac{1}{\pi}\int_{

python 图像的离散傅立叶变换

图像(MxN)的二维离散傅立叶变换可以将图像由空间域变换到频域中去,空间域中用x,y来表示空间坐标,频域由u,v来表示频率,二维离散傅立叶变换的公式如下: 在python中,numpy库的fft模块有实现好了的二维离散傅立叶变换函数,函数是fft2,输入一张灰度图,输出经过二维离散傅立叶变换后的结果,但是具体实现并不是直接用上述公式,而是用快速傅立叶变换.结果需要通过使用abs求绝对值才可以进行可视化,但是视觉效果并不理想,因为傅立叶频谱范围很大,所以要用log对数变换来改善视觉效果. 另外,图

快速傅立叶变换算法FFT——图像处理中的数学原理详解22

欢迎关注我的博客专栏"图像处理中的数学原理详解" 全文目录请见 图像处理中的数学原理详解(总纲) http://blog.csdn.net/baimafujinji/article/details/48467225 图像处理中的数学原理详解(已发布的部分链接整理) http://blog.csdn.net/baimafujinji/article/details/48751037 交流学习可加图像处理研究学习QQ群(529549320) 傅立叶变换以高等数学(微积分)中的傅立叶级数为基

Matlab图像处理系列4———图像傅立叶变换与反变换

注:本系列来自于图像处理课程实验,用Matlab实现最基本的图像处理算法 1.Fourier变换 (1)频域增强 除了在空间域内可以加工处理图像以外,我们还可以将图像变换到其他空间后进行处理,这些方法称为变换域方法,最常见的变换域是频域. 使用Fourier变换把图像从空间域变换到频域,在频域内做相应增强处理,再从频域变换到空间域得到处理后的图像. 我们这里主要学习Fourier变换和FFT变换的算法,没有学过通信原理,我对信号.时域分析也不是很清楚. 2.FFT算法 (1)离散Fourier变

图像处理复习2——图像傅立叶变换和频域滤波

图像处理复习 CH4 基本图像变换 4.1 DFT (1)一维DFT 一维DFT: F(u)=1N∑N?1x=0f(x)e?j2πuxN,x=0,1,-,N?1 其逆变换: f(x)=∑N?1u=0F(u)ej2πuxN,u=0,1,-,N?1 (2)二维DFT 二维DFT: F(u,v)=1N∑N?1x=0∑N?1y=0f(x,y)e?j2πux+vyN,u,v=0,1,-,N?1 其逆变换: f(x,y)=1N∑N?1u=0∑N?1v=0F(u,v)ej2πux+vyN,x,y=0,1,-,

算法系列之二十三:离散傅立叶变换之音频播放与频谱显示

算法系列之二十三:离散傅立叶变换之音频播放与频谱显示 算法系列之二十三离散傅立叶变换之音频播放与频谱显示 导语 什么是频谱 1 频谱的原理 2 频谱的选择 3 频谱的计算 显示动态频谱 1 实现方法 2 杂项说明 结果展示 导语 频谱和均衡器,几乎是媒体播放程序的必备物件,没有这两个功能的媒体播放程序会被认为不够专业,现在主流的播放器都具备这两个功能,foobar 2000的十八段均衡器就曾经让很多人着迷.在上一篇对离散傅立叶变换介绍的基础上,本篇就进一步介绍一下频谱是怎么回事儿,下一篇继续介绍

ActionScript3游戏中的图像编程(连载十二)

1.2.7 线性提高或降低alpha值 提高alpha(图 1.14):_myColorTransform.alphaOffset = 100; 降低alpha值(图 1.15):_myColorTransform.alphaOffset = -100; 图 1.14 线性提高alpha 图 1.15 线性降低alpha 粗略一看,它跟设置alpha似乎没什么两样,但仔细观察就会发现,当alphaOffset提高的时候,周边比较透明的像素渐渐地淡入到1,相反,降低的时候,周边会慢慢地淡出到0.所

算法系列之二十四:离散傅立叶变换之音频播放与均衡器

导语 在算法系列的第二十二篇,我们介绍了离散傅立叶变换算法的实现,将时域的音频信号转换到频域进行分析,获取拨号音频的频率特征.这一篇我们将介绍一种频域均衡器的实现方法,所谓的频域均衡器,就是在频域信号的基础上对音频数据进行调整,然后再将频域信号转换成时域信号在回放设备上播放,从而达到音色调节的目的.将频域信号转换成时域信号的算法,就是离散傅立叶逆变换算法. 1 离散傅立叶逆变换 有从时域转换到频域的方法,就必然有从频域转换到时域的方法,相对于离散傅里叶变换,这个反向转换就是离散傅里叶逆变换(ID

【算法随记五】使用FFT变换自动去除图像中严重的网纹。

这个课题在很久以前就已经有所接触,不过一直没有用代码去实现过.最近买了一本<机器视觉算法与应用第二版>书,书中再次提到该方法:使用傅里叶变换进行滤波处理的真正好处是可以通过使用定制的滤波器来消除图像中某些特定频率,例如这些特定频率可能代表着图像中重复出现的纹理. 在网络上很多的PS教程中,也有提到使用FFT来进行去网纹的操作,其中最为广泛的是使用PS小插件FOURIER TRANSFORM,使用过程为:打开图像--进行FFT RGB操作,然后定位到红色通道,选取通道中除了最中心处的之外的白点区