数字图像处理dft python
时间: 2023-10-31 08:59:48 浏览: 122
基于Python实现数字图像处理(图像去雾)【100010439】
5星 · 资源好评率100%
数字图像处理中的DFT(离散傅里叶变换)在Python中可以使用NumPy库来实现。下面是一个简单的示例代码,用于对图像进行DFT变换:
```python
import cv2
import numpy as np
from matplotlib import pyplot as plt
# 读取图像
img = cv2.imread('image.jpg', 0)
# 对图像进行DFT变换
dft = np.fft.fft2(img)
dft_shift = np.fft.fftshift(dft)
# 获取幅度谱,并进行对数变换
magnitude_spectrum = 20 * np.log(np.abs(dft_shift))
# 显示原始图像和频谱图
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()
```
在上面的代码中,首先使用OpenCV库读取了一张灰度图像。然后,使用NumPy中的`fft2`函数对图像进行DFT变换,并使用`fftshift`函数将低频分量移动到频谱的中心。接下来,计算了频谱的幅度谱,并对其进行了对数变换以增强可视化效果。最后,使用Matplotlib库将原始图像和频谱图显示出来。
这只是一个简单的示例,你可以根据自己的需求进行更复杂的图像处理操作。希望对你有帮助!
阅读全文