二维傅里叶变换在图像处理中经常用到,为了更好理解python中的fft2。这里我们生成了二维正弦条纹,然后进行快速傅里叶变换。
#Python版本:Python3.5
#用到的库:numpy,matploylib
#作者:James_Ray_Murphy
# -*- coding: -utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
N = 256
x = np.linspace(-10, 10, N)
y = np.linspace(-10, 10, N)
X,Y = np.meshgrid(x,y)
Z = 2 * np.cos(0.2 * np.pi * X) #光栅
Z_fft2 = np.fft.fft2(Z)
Z_fft2_sh = abs(np.fft.fftshift(Z_fft2))
plt.subplot(221)
plt.imshow(Z)
plt.title(‘Original’)
plt.subplot(222)
plt.imshow(abs(Z_fft2))
plt.title(‘fft2’)
plt.subplot(223)
plt.imshow(Z_fft2_sh)
plt.title(‘fft2-shift’)
plt.subplot(224)
plt.plot(Z_fft2_sh[128,:])
plt.title(‘x = 128’)
plt.show()
效果图如下: