opencv实现傅里叶变换代码
时间: 2023-11-13 21:58:24 浏览: 129
opencv实现傅里叶变换
很高兴为您解答问题。以下是使用OpenCV实现傅里叶变换代码的示例:
``` python
import cv2
import numpy as np
# 读取图像
image = cv2.imread('image.jpg', 0)
height, width = image.shape
# 快速傅里叶变换
f = np.fft.fft2(image)
fshift = np.fft.fftshift(f)
# 取绝对值:将复数变化成实数
magnitude_spectrum = 20 * np.log(np.abs(fshift))
# 高通滤波器
mask = np.zeros((height, width), np.uint8)
mask[int(height/2)-30:int(height/2)+30, int(width/2)-30:int(width/2)+30] = 1
fshift = fshift * mask
# 快速傅里叶逆变换
f_ishift = np.fft.ifftshift(fshift)
img_back = np.fft.ifft2(f_ishift)
img_back = np.abs(img_back)
# 显示结果
cv2.imshow('Input Image', image)
cv2.imshow('Spectrum Magnitude', magnitude_spectrum.astype(np.uint8))
cv2.imshow('Image after HPF', img_back.astype(np.uint8))
cv2.waitKey(0)
cv2.destroyAllWindows()
```
希望这可以帮助到您。如果您有其他问题,请随时提出。
阅读全文