Python中二维快速傅里叶变换—-基于numpy库

  • Post author:
  • Post category:python


二维傅里叶变换在图像处理中经常用到,为了更好理解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()

效果图如下:




版权声明:本文为James_Ray_Murphy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。