对加入高斯白噪声和椒盐噪声的图像进行邻域平均去噪python代码
时间: 2024-05-05 19:16:11 浏览: 116
以下是一个示例代码,使用邻域平均法对加入高斯白噪声和椒盐噪声的图像进行去噪:
```
import cv2
import numpy as np
# 读取图像
img = cv2.imread('noisy_image.png', cv2.IMREAD_GRAYSCALE)
# 添加高斯白噪声
noise_sigma = 25
noise = np.random.normal(0, noise_sigma, img.shape)
noisy_img = img + noise
# 添加椒盐噪声
noise_ratio = 0.05
noise = np.random.rand(*img.shape)
noisy_img[noise < noise_ratio/2] = 0
noisy_img[noise > 1 - noise_ratio/2] = 255
# 邻域平均去噪
kernel_size = 3
denoised_img = cv2.blur(noisy_img, (kernel_size, kernel_size))
# 显示结果
cv2.imshow('Original Image', img)
cv2.imshow('Noisy Image', noisy_img)
cv2.imshow('Denoised Image', denoised_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上面的代码中,首先读取了一张图像并添加了高斯白噪声和椒盐噪声。然后使用`cv2.blur`函数对图像进行邻域平均去噪,其中`kernel_size`参数指定了邻域大小。最后显示了原始图像、加噪图像和去噪图像,可以通过调整`noise_sigma`、`noise_ratio`和`kernel_size`来得到不同的结果。
阅读全文