python傅里叶变换图像 FFT
时间: 2023-06-22 10:41:55 浏览: 95
在 Python 中,可以使用 NumPy 库中的 `fft` 模块进行傅里叶变换。以下是一个简单的例子:
```python
import cv2
import numpy as np
from matplotlib import pyplot as plt
# 读取图像
img = cv2.imread('image.jpg', 0)
# 进行傅里叶变换
f = np.fft.fft2(img)
fshift = np.fft.fftshift(f)
magnitude_spectrum = 20*np.log(np.abs(fshift))
# 显示原始图像和傅里叶变换后的图像
plt.subplot(121),plt.imshow(img, cmap = 'gray')
plt.title('Input Image'), plt.xticks([]), plt.yticks([])
plt.subplot(122),plt.imshow(magnitude_spectrum, cmap = 'gray')
plt.title('Magnitude Spectrum'), plt.xticks([]), plt.yticks([])
plt.show()
```
在这个例子中,我们首先读取了一个灰度图像,然后使用 `np.fft.fft2()` 函数进行傅里叶变换。为了方便显示,我们对变换结果进行了平移,然后计算了幅度谱,并使用 `20*np.log()` 函数对其进行缩放。最后,我们使用 Matplotlib 库显示了原始图像和傅里叶变换后的图像。
需要注意的是,图像的傅里叶变换结果是一个复数矩阵,因此在计算幅度谱时需要使用绝对值函数。另外,为了方便观察,我们对幅度谱进行了取对数的操作。
阅读全文