【深度好文】二維圖像傅裡葉變換 YYDS

1. 傅裡葉變換原理

在數學中進行傅裡葉變換為連續模擬信號,二維連續函數f(x,y)的傅裡葉正變換為:

相應的傅裡葉逆變換公式為:

但是在計算機領域,計算機一般處理的是數字信號,隻能進行有限次計算,因此將這種受限下的傅裡葉變換成為離散傅裡葉變換(Discrete Fourier Transform,DFT)。二維離散函數f(x,y)的傅裡葉正變換的公式如下:

相應的傅裡葉逆變換的公式如下:

2. 傅裡葉變換性質

這裡列出來書本上介紹的關於傅裡葉變換的一些性質,僅供參考,不做詳述。

3. 傅裡葉變換python實現

3.1 傅裡葉正變換實現參考上述傅裡葉正變換給出的公式,這裡給出其python實現如下:

def DFT2D(x, shift=True):
'''
Discrete space fourier transform
x: Input matrix
'''
pi2 = 2*np.pi
N1, N2 = x.shape
X = np.zeros((N1, N2), dtype=np.complex64)
n1, n2 = np.mgrid[0:N1, 0:N2]

for w1 in range(N1):
for w2 in range(N2):
j2pi = np.zeros((N1, N2), dtype=np.complex64)
j2pi.imag = pi2*(w1*n1/N1 + w2*n2/N2)
X[w1, w2] = np.sum(x*np.exp(-j2pi))
if shift:
X = np.roll(X, N1//2, axis=0)
X = np.roll(X, N2//2, axis=1)
return X

赞(0)