opencv 椒盐噪声
时间: 2023-12-22 12:30:05 浏览: 105
在OpenCV中,可以使用函数`cv2.randu()`来生成椒盐噪声。该函数可以在指定的图像区域内随机生成一些像素点,并将这些像素点的值设置为最小值或最大值,从而模拟椒盐噪声的效果。
下面是一个示例代码,演示如何在图像中添加椒盐噪声:
```python
import cv2
import numpy as np
def add_salt_and_pepper_noise(image, noise_ratio):
h, w = image.shape[:2]
num_noise_pixels = int(noise_ratio * h * w)
# 随机生成椒盐噪声的像素位置
salt_coords = [np.random.randint(0, h) for _ in range(num_noise_pixels)]
pepper_coords = [np.random.randint(0, w) for _ in range(num_noise_pixels)]
# 将椒盐噪声的像素值设置为最小值或最大值
image[salt_coords, pepper_coords] = 0 # 最小值
image[pepper_coords, salt_coords] = 255 # 最大值
return image
# 读取图像
image = cv2.imread('image.jpg')
# 添加椒盐噪声
noisy_image = add_salt_and_pepper_noise(image, noise_ratio=0.1)
# 显示原始图像和添加噪声后的图像
cv2.imshow('Original Image', image)
cv2.imshow('Noisy Image', noisy_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
这段代码首先定义了一个`add_salt_and_pepper_noise()`函数,该函数接受一个图像和一个噪声比例作为参数。然后,根据噪声比例计算出要添加的椒盐噪声的像素数量,并随机生成这些像素的位置。最后,将这些像素的值设置为最小值或最大值,从而添加椒盐噪声。
你可以将上述代码保存为一个Python文件,并将待处理的图像命名为`image.jpg`,然后运行代码即可看到添加椒盐噪声后的图像效果。
阅读全文