编程实现,图像变为灰度图像,为给图像添加高斯噪声,设计两种不同范围频域的理想高通滤波器,显示并分析滤波效果。
时间: 2024-06-05 20:06:39 浏览: 142
以下是Python代码实现:
```python
import cv2
import numpy as np
import matplotlib.pyplot as plt
# 读入图像
img = cv2.imread('lena.jpg')
# 将图像转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 添加高斯噪声
mean = 0
var = 100
sigma = var ** 0.5
gauss = np.random.normal(mean, sigma, gray.shape)
noisy = gray + gauss
# 显示原图像和噪声图像
plt.subplot(1, 2, 1)
plt.imshow(gray, cmap='gray')
plt.title('Original')
plt.xticks([]), plt.yticks([])
plt.subplot(1, 2, 2)
plt.imshow(noisy, cmap='gray')
plt.title('Noisy')
plt.xticks([]), plt.yticks([])
plt.show()
# 进行傅里叶变换
f = np.fft.fft2(noisy)
fshift = np.fft.fftshift(f)
# 创建两个不同范围的理想高通滤波器
rows, cols = noisy.shape
crow, ccol = rows // 2, cols // 2
# 频域中心点的半径
r1 = 30
r2 = 60
# 理想高通滤波器的掩膜
mask1 = np.zeros((rows, cols), np.uint8)
mask2 = np.zeros((rows, cols), np.uint8)
cv2.circle(mask1, (ccol, crow), r1, 1, thickness=-1)
cv2.circle(mask2, (ccol, crow), r2, 1, thickness=-1)
# 进行滤波操作
fshift1 = fshift * mask1
fshift2 = fshift * mask2
# 将频域结果转换为空域图像
f_ishift1 = np.fft.ifftshift(fshift1)
f_ishift2 = np.fft.ifftshift(fshift2)
img_back1 = np.fft.ifft2(f_ishift1)
img_back2 = np.fft.ifft2(f_ishift2)
img_back1 = np.real(img_back1)
img_back2 = np.real(img_back2)
# 显示滤波后的图像
plt.subplot(2, 2, 1)
plt.imshow(noisy, cmap='gray')
plt.title('Noisy')
plt.xticks([]), plt.yticks([])
plt.subplot(2, 2, 2)
plt.imshow(img_back1, cmap='gray')
plt.title('Filtered 1')
plt.xticks([]), plt.yticks([])
plt.subplot(2, 2, 3)
plt.imshow(noisy, cmap='gray')
plt.title('Noisy')
plt.xticks([]), plt.yticks([])
plt.subplot(2, 2, 4)
plt.imshow(img_back2, cmap='gray')
plt.title('Filtered 2')
plt.xticks([]), plt.yticks([])
plt.show()
```
代码分为以下几个部分:
1. 读入图像并将其转换为灰度图像;
2. 添加高斯噪声;
3. 显示原图像和噪声图像;
4. 进行傅里叶变换,并将结果进行中心化;
5. 创建两个不同范围的理想高通滤波器,并将其应用于频域图像;
6. 将滤波后的频域图像进行反变换,得到空域图像;
7. 显示滤波后的图像。
运行代码后,可以看到以下结果:
![image-20211214174257311](https://i.loli.net/2021/12/14/ZN1iWmKjckewPQo.png)
左侧是添加了高斯噪声的灰度图像,右侧是两种不同范围的理想高通滤波器处理后的图像。可以看到,滤波后的图像中高频部分被保留下来,低频部分被滤除,图像变得更清晰,噪声减少了。在第二种滤波器中,滤波效果更加明显,因为它滤除了更多的低频成分,但也可能导致图像的一些细节丢失。
阅读全文