python 图像去噪椒盐噪声
时间: 2023-09-20 16:13:22 浏览: 126
可以使用一些图像处理的方法来去除椒盐噪声,以下是一个使用 Python 的示例代码:
```python
import cv2
import numpy as np
def remove_salt_and_pepper(image, prob):
noisy_image = np.copy(image)
h, w = image.shape[:2]
# 添加椒盐噪声
num_pixels = int(prob * h * w)
salt_coords = [np.random.randint(0, i - 1, num_pixels) for i in (h, w)]
pepper_coords = [np.random.randint(0, i - 1, num_pixels) for i in (h, w)]
noisy_image[salt_coords = 255
noisy_image = 0
# 使用中值滤波去噪
denoised_image = cv2.medianBlur(noisy_image.astype(np.uint8), 3)
return denoised_image
# 读取图像
image = cv2.imread('input.jpg', cv2.IMREAD_GRAYSCALE)
# 去噪椒盐噪声
denoised_image = remove_salt_and_pepper(image, 0.05)
# 显示结果
cv2.imshow('Original Image', image)
cv2.imshow('Denoised Image', denoised_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例中,我们首先将原始图像复制一份作为带有噪声的图像。然后,我们生成随机的椒盐噪声坐标,并将相应的像素值设置为255(白色)和0(黑色)。接下来,我们使用 `cv2.medianBlur()` 函数对带有噪声的图像进行中值滤波,以去除噪声。最后,我们显示原始图像和去噪后的图像。
请注意,`remove_salt_and_pepper()` 函数接受两个参数,第一个是图像数据,第二个是椒盐噪声的概率。概率越高,噪声越多。
你可以将上述代码保存为一个 Python 文件,并将 `input.jpg` 替换为你的图像文件路径,然后运行该文件来去除图像中的椒盐噪声。
阅读全文