正文
1. 傅里叶变换的作用
离散傅里叶变换是最经典的一种正弦余弦型正交变换,它建立了空间域与频率域间的联系,具有明确的物理意义,能够更直观、方便地解决许多图像处理问题。而且具有快速算法,因此广泛应用于图像处理等各个领域。
2. 傅里叶变换的定义
2.1. 狄里赫莱条件
函数在任意有限区间内连续或只有有限个第一类间断点
在单个周期内函数仅有限个极值点
在单个周期内函数绝对可积
只有满足狄里赫莱条件的周期函数才存在傅里叶变换。
2.2. 连续傅里叶变换
一维傅里叶变换对:
函数F ( μ ) 一般情况下是一个复数量,可表示为:
或
其中f ( x 称为空间域;F ( μ )称为f ( x ) 的频率谱或频率域;的幅度谱称为f ( x )的相位谱。
二维傅里叶变换对:
同理二维傅里叶变换的F ( μ , ν )可表示为
其中F ( μ , ν ) 称为f ( x , y ) 的频谱;称为f ( x , y )的幅度谱;称为f ( x , y )的相位谱
2.3. 离散傅里叶变换
一维离散傅里叶变换
定义:设{ f ( x ) ∣ x = 0 , 1 , . . . , N − 1 } 为维信号的N 个抽样,其离散傅里叶变换及其逆变换分别为:
二维离散傅里叶变换对:
其中x y 、μ 、ν的取值范围为:μ , x = 0 , 1 , . . . , N − 1 , y = 0 , 1 , . . . , N − 1
同样的,F ( μ , ν )亦可表示为:
其中F ( μ , ν ) 称为f ( x , y ) 的频谱;为f ( x , y ) )的幅度谱;称为f ( x , y )的相位谱
python实现提取图像幅度谱与相位谱:
import numpy as np import cv2 as cv image = cv.imread(imagePath) freSpectrum = np.fft.fft2(image) # 频谱 freSpectrum = np.fft.fftshift(freSpectrum) # 平移对称 ampSpectrum = np.sqrt(freSpectrum.imag ** 2 + freSpectrum.real ** 2) # 幅度谱 phaSpectrum = np.arctan(freSpectrum.imag / freSpectrum.real) # 相位谱
3. 离散傅里叶变换的显示
1、对称平移
图像进行离散傅里叶变换的示意图:
在上图中,左一图即为f ( x , y ) 左二图即为f ( x , y ) 的幅度谱,白色部分为高频分量,阴影部分为低频分量,在四个角点频率最低,称其为直流部分或者直流分量。为了更好的体现图像的对称性,往往会将变换后的图像进行换位(对角交换),如左三图所示。这时,在频域的正中心即为直流分量,四周对应的就是高频分量
一个傅里叶变换实例:
python实现:
import numpy as np import cv2 as cv image = cv.imread(imagePath) freSpectrum = np.fft.fft2(_image) # 频谱 freSpectrum = np.fft.fftshift(freSpectrum) # 对频谱进行平移对称
2、值域动态范围压缩
由于傅里叶变换幅度谱的值域大于显示值域,会导致低频部分显示受限,因此要进行值域的动态范围压缩,放大低频压缩高频。通常办法是把频率谱取对数运算,表示为:
其中由此可见,D ( μ , ν ) 的值域是[ 0 , 255 ]
python实现幅度谱值域动态范围压缩:
import numpy as np import cv2 as cv image = cv.imread(imagePath) freSpectrum = np.fft.fft2(image) # 频谱 freSpectrum = np.fft.fftshift(freSpectrum) # 低频集中的频谱 # 幅度谱值域动态范围压缩 maxlogValue = [] for i in range(len(freSpectrum)): maxlogValue.append(max(np.log(1 + np.abs(freSpectrum[i])))) ampSpectrum = 255 / max(maxlogValue) * np.log(1 + np.abs(freSpectrum)) # 压缩后的幅度谱
下图中的图三和图四分别是没有进行值域动态范围压缩的傅里叶变换幅度谱和进行了值域动态范围压缩的傅里叶变换幅度谱,可以看到高频部分被压缩、低频部分被放大,图片更加清晰。
3.1. 二维离散傅里叶变换的幅度谱与相位谱
下图是傅里叶变换幅度谱及其逆变换
下图是傅里叶变换相位谱及其逆变换
很显然相位谱图像结果逆变换以后比幅度谱图像经过逆变换后的图像更加清晰直观,幅度谱图像经过逆变换后的图像过于抽象,难以理解。就这个现象来说,相位谱比起幅度谱携带着更容易被人类理解的信息。
3.2. 快速傅里叶变换FFT
FFT的出现极大促进了傅里叶变换的实用化,它利用了傅里叶变换的周期性和对称性,大大降低了计算量。
离散傅里叶变换与快速傅里叶变换的运算量之比为:
其中N 为图像大小