对一幅原始图像进行二维傅里叶变换得到傅里叶频谱的Python代码
时间: 2023-06-01 18:05:19 浏览: 146
以下是对一幅原始图像进行二维傅里叶变换得到傅里叶频谱的Python代码:
```python
import cv2
import numpy as np
from matplotlib import pyplot as plt
# 读取原始图像
img = cv2.imread('image.jpg', 0)
# 进行二维傅里叶变换
dft = cv2.dft(np.float32(img), flags=cv2.DFT_COMPLEX_OUTPUT)
dft_shift = np.fft.fftshift(dft)
# 计算频谱图像
magnitude_spectrum = 20 * np.log(cv2.magnitude(dft_shift[:, :, 0], dft_shift[:, :, 1]))
# 显示频谱图像
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()
```
其中,`cv2.dft()`函数用于进行二维傅里叶变换,`cv2.magnitude()`函数用于计算复数的幅值,`np.fft.fftshift()`函数用于将零频移动到频谱中心。最后,利用Matplotlib库中的`plt.imshow()`函数,显示原始图像和傅里叶频谱图像。
阅读全文