给图片用cv2.添加椒盐噪声的Python代码
时间: 2024-12-22 22:23:41 浏览: 11
在Python中,我们可以使用`OpenCV`库(cv2)和`numpy`库来给图像添加椒盐噪声。椒盐噪声是一种常见的图像处理噪声形式,它会在图像像素上随机地设置为0(黑色)或保持原值(白色)。以下是添加椒盐噪声的基本步骤:
```python
import cv2
import numpy as np
def add_salt_pepper_noise(image, prob):
# 创建一个全黑图像同尺寸
salt_mask = np.random.randint(0, 256, image.shape, dtype=np.uint8)
pepper_mask = np.copy(salt_mask)
# 将部分像素设为0 ( Pepper Noise )
pepper_mask[np.where((salt_mask==0) & (np.random.rand(*image.shape) < prob))] = 255
# 将部分像素设为255 ( Salt Noise )
salt_mask[np.where((pepper_mask==255) & (np.random.rand(*image.shape) < prob))] = 0
# 结合原图和噪声图像
noisy_image = image + pepper_mask.astype(np.uint8) - salt_mask.astype(np.uint8)
return np.clip(noisy_image, 0, 255).astype(np.uint8)
# 加载一张图片
original_img = cv2.imread('your_image.jpg', cv2.IMREAD_GRAYSCALE) # 如果是彩色图片,需要先转为灰度
prob = 0.05 # 椒盐噪声的概率
noisy_img = add_salt_pepper_noise(original_img, prob)
cv2.imshow("Original Image", original_img)
cv2.imshow("Noisy Image", noisy_img)
# 显示并等待用户按键
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个代码里,`prob`参数决定了椒盐噪声的比例,范围通常在0到1之间。将图片路径替换为你的实际图片路径即可。
阅读全文