1. 程式人生 > >Python中二維快速傅立葉變換----基於numpy庫

Python中二維快速傅立葉變換----基於numpy庫

二維傅立葉變換在影象處理中經常用到,為了更好理解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()

效果圖如下: