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

本文介绍了如何在Python中使用numpy库进行二维快速傅里叶变换(fft2)。通过生成二维正弦条纹并应用fft2,展示了原始图像、fft2结果以及fft2-shift的结果,进一步理解傅里叶变换在图像处理中的应用。

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

效果图如下:

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值