定义一个函数ft,可以实现对输入图像的傅里叶变换,并将零频分量平移到频谱中心,最后返回傅里叶频谱。进行测试,对data.checkerboard()调用定义的函数,并显示处理结果
时间: 2024-02-17 12:59:59 浏览: 70
FFT_fft傅里叶变换_频谱分析_
5星 · 资源好评率100%
好的,以下是定义函数ft的Python代码:
```python
import numpy as np
from scipy import fftpack
def ft(img):
# 使用傅里叶变换
f = fftpack.fft2(img)
# 将零频分量平移到频谱中心
fshift = fftpack.fftshift(f)
# 返回傅里叶频谱
return np.log(np.abs(fshift))
```
接下来是对data.checkerboard()调用ft函数,并显示处理结果的Python代码:
```python
import matplotlib.pyplot as plt
from skimage import data
# 读取数据
img = data.checkerboard()
# 调用ft函数进行傅里叶变换
f_img = ft(img)
# 显示原图和处理结果
fig, axes = plt.subplots(ncols=2, figsize=(10, 5))
ax = axes.ravel()
ax[0].imshow(img, cmap='gray')
ax[0].set_title('Original image')
ax[1].imshow(f_img, cmap='gray')
ax[1].set_title('Fourier spectrum')
fig.tight_layout()
plt.show()
```
运行上述代码,就可以得到对data.checkerboard()进行傅里叶变换后的结果。
阅读全文