imFFT = np.fft.fft2(im) imFFTshift = np.fft.fftshift(imFFT) imFFTabs = np.abs(imFFTshift) imFFTabs = 30*np.log(imFFTabs)接下来怎么做
时间: 2024-03-08 19:49:10 浏览: 75
接下来可以将变换结果显示出来,以便观察图像频谱特征。以下是一个示例代码,用于将一张图像的傅里叶变换结果显示出来:
```python
import cv2
import numpy as np
from matplotlib import pyplot as plt
# 读入图像
im = cv2.imread('lena.jpg', 0)
# 进行傅里叶变换
imFFT = np.fft.fft2(im)
imFFTshift = np.fft.fftshift(imFFT)
imFFTabs = np.abs(imFFTshift)
imFFTabs = 30*np.log(imFFTabs)
# 显示变换结果
plt.subplot(121), plt.imshow(im, cmap='gray')
plt.title('Input Image'), plt.xticks([]), plt.yticks([])
plt.subplot(122), plt.imshow(imFFTabs, cmap='gray')
plt.title('Magnitude Spectrum'), plt.xticks([]), plt.yticks([])
plt.show()
```
其中,`cv2.imread()` 用于读入图像,`np.fft.fft2()` 用于进行傅里叶变换,`np.fft.fftshift()` 用于将结果进行中心化处理,`np.abs()` 用于计算变换结果的幅值,`30*np.log()` 用于计算频率分量大小的对数值。最后,用 `plt.imshow()` 函数显示原始图像和傅里叶变换结果。
阅读全文