python频率域滤波去噪代码
时间: 2024-06-11 09:02:30 浏览: 113
频域滤波去噪
Python中进行频率域滤波去噪可以使用FFT(快速傅里叶变换)对信号进行频域转换,再使用滤波器进行滤波处理,最后进行IFFT(傅里叶逆变换)将信号转换回时域。以下是一段Python代码实现频率域滤波去噪:
```python
import cv2
import numpy as np
# 读取图像
img = cv2.imread('image.jpg', 0)
# 进行FFT变换
f = np.fft.fft2(img)
fshift = np.fft.fftshift(f)
# 构建高通滤波器
rows, cols = img.shape
crow, ccol = int(rows / 2), int(cols / 2)
mask = np.zeros((rows, cols), np.uint8)
mask[crow - 30:crow + 30, ccol - 30:ccol + 30] = 1
# 对频域进行滤波处理
fshift = fshift * mask
# 进行IFFT逆变换
ishift = np.fft.ifftshift(fshift)
iimg = np.fft.ifft2(ishift)
iimg = np.abs(iimg)
# 显示结果
cv2.imshow('original', img)
cv2.imshow('result', iimg.astype(np.uint8))
cv2.waitKey(0)
cv2.destroyAllWindows()
```
上述代码中,首先读取图像并进行FFT变换,然后构建高通滤波器对频域进行滤波处理,最后进行IFFT逆变换将信号转换回时域。需要注意的是,在构建滤波器时可以根据需要选择不同的滤波器类型和参数来实现不同的滤波效果。
阅读全文