利用cv2.blur( )方法对添加了椒盐噪声的图像进行均值滤波,要求分别采用3*3、5*5和9*9的滤波核,给出相关代码和实验结果;
时间: 2024-09-28 15:08:59 浏览: 35
在Python的OpenCV库(cv2)中,`blur()`函数可以用于对图像进行平滑处理,去除噪声,如椒盐噪声。这里我们将展示如何使用该函数配合不同的滤波核大小(3x3、5x5和9x9)来实现均值滤波。
```python
import cv2
import numpy as np
# 加载示例图像
image = cv2.imread('example.jpg', cv2.IMREAD_GRAYSCALE)
# 模拟椒盐噪声
salt_and_pepper_noise = (np.random.rand(*image.shape) < 0.05) * 255
noisy_image = image + salt_and_pepper_noise.astype(np.uint8)
noisy_image = np.clip(noisy_image, 0, 255) # 确保像素值在0-255范围内
# 定义不同大小的滤波核
kernels = [(3, 3), (5, 5), (9, 9)]
filtered_images = []
for kernel_size in kernels:
blurred_image = cv2.blur(noisy_image, kernel_size)
filtered_images.append(blurred_image)
# 显示原始图像和处理后的图像
titles = ['Original', '3x3 Blur', '5x5 Blur', '9x9 Blur']
for i, img in enumerate(filtered_images):
plt.subplot(2, 2, i+1)
plt.imshow(img, cmap='gray')
plt.title(titles[i])
plt.xticks([]), plt.yticks([]) # 隐藏坐标轴
plt.show()
```
在这个例子中,我们首先加载并模拟椒盐噪声,然后应用不同大小的滤波核进行模糊处理。结果会显示原始图像以及三种滤波核尺寸下处理后的图像对比。注意,由于这是一个简化的代码片段,实际运行时需要导入matplotlib库并确保图片路径正确。
阅读全文