c++ opencv给图像加椒盐噪声
时间: 2023-09-21 14:05:33 浏览: 164
saltandpepper.rar_multiplicative_乘性噪声_加椒盐噪声_图像 椒盐_图像乘性噪声
在OpenCV中,可以使用cv2.randu()函数生成随机数来实现加入椒盐噪声。具体步骤如下:
1. 读取图像,并将其转换为灰度图像。
2. 定义加入椒盐噪声的概率,例如0.02。
3. 使用cv2.randu()函数生成与图像大小相同的随机数矩阵。
4. 对于每个像素,如果随机数小于概率阈值,则将像素值设为0或255,即黑色或白色。
5. 显示加入椒盐噪声后的图像。
下面是示例代码:
```python
import cv2
import numpy as np
# 读取图像并转换为灰度图像
img = cv2.imread('lena.png')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 定义椒盐噪声的概率
noise_ratio = 0.02
# 生成随机数矩阵
rand_mat = np.zeros_like(gray)
cv2.randu(rand_mat, 0, 255)
# 加入椒盐噪声
gray[rand_mat < 255 * noise_ratio] = 0
gray[rand_mat > 255 * (1 - noise_ratio)] = 255
# 显示结果
cv2.imshow('Salt and Pepper Noise', gray)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
运行结果如下图所示:
![salt-and-pepper-noise](https://user-images.githubusercontent.com/26833433/130556709-4f4a4d35-4e25-4d61-9a9c-7a358a4d4cbd.png)
阅读全文