加上abs函数和fftshift函数
时间: 2023-09-11 20:09:47 浏览: 87
MATLAB自相关编写及周期函数分析-综合文档
好的,下面是加上abs函数和fftshift函数的示例代码:
```python
import cv2
import numpy as np
import matplotlib.pyplot as plt
# 读取图像
img = cv2.imread('lena.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('Original 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.abs()`函数用于计算复数的模,即幅值,而`np.fft.fftshift()`函数则用于将零频率分量移动到频谱的中心位置。
阅读全文