python获取图像的频域特征
时间: 2023-08-18 07:31:13 浏览: 236
图像的频域处理
5星 · 资源好评率100%
要获取图像的频域特征,可以使用Python中的傅里叶变换(FFT)。FFT可以将图像从空间域转换到频域,从而提取图像的频域特征。
以下是一个简单的Python代码示例,用于获取图像的频域特征:
```python
import cv2
import numpy as np
from matplotlib import 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('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()
```
在这个例子中,我们首先读取图像,并使用fft2函数计算傅里叶变换。然后,我们使用fftshift函数将频域图像的低频部分移动到中心。最后,我们将频域图像的幅度取对数并显示频谱图。在频谱图中,亮度表示频率的强度,越亮的区域表示越高的频率成分。
阅读全文