对给定的添加了椒盐噪声和高斯噪声的图像综合使用频域增强方法去除图像噪声,并在保留图像部分低频信号的基础上强化图像的轮廓和细节,显示频域处理后的图像。python代码
时间: 2024-05-08 11:22:10 浏览: 81
以下是使用Python实现频域增强方法去除图像噪声的示例代码:
```python
import cv2
import numpy as np
# 读取图像
img = cv2.imread('noisy_image.png')
# 转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 使用傅里叶变换将图像转换为频域
f = np.fft.fft2(gray)
# 将频域中心移动到图像中心
fshift = np.fft.fftshift(f)
# 构建振幅谱
magnitude_spectrum = 20 * np.log(np.abs(fshift))
# 构建掩码
mask = np.zeros_like(gray)
mask[50:-50, 50:-50] = 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('Original Image', img)
cv2.imshow('Noisy Image', gray)
cv2.imshow('Magnitude Spectrum', magnitude_spectrum)
cv2.imshow('Mask', mask)
cv2.imshow('Result Image', img_back)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例中,我们首先读取了一个添加了椒盐噪声和高斯噪声的图像,并将其转换为灰度图像。然后,我们使用傅里叶变换将图像转换为频域,并将频域中心移动到图像中心。接下来,我们构建了一个掩码,并将其应用于频域图像。然后,我们将频域中心移回原始位置,并使用反傅里叶变换将频域转换为空域。最后,我们显示了结果图像。
你需要根据你的实际需求修改代码中的输入图像路径和掩码。
阅读全文