opencv 胡椒噪声
时间: 2023-10-27 21:05:41 浏览: 39
胡椒噪声是一种图像噪声,通常由于图像采集设备的缺陷或传输过程中的干扰引起。在 OpenCV 中,可以使用函数 cv2.randome() 生成随机数来模拟胡椒噪声,然后将其添加到图像中。
以下是一个示例代码:
```python
import cv2
import numpy as np
img = cv2.imread('image.jpg')
# 生成随机数
noise = np.zeros(img.shape, np.uint8)
cv2.randu(noise, 0, 255)
# 将噪声添加到图像中
img_noise = cv2.add(img, noise)
cv2.imshow('Original Image', img)
cv2.imshow('Image with Pepper Noise', img_noise)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
相关问题
opencv椒盐噪声
OpenCV中的椒盐噪声是一种常见的图像噪声,它会在图像中随机地添加黑色或白色像素点,就像盐粒或胡椒粒那样随机地分布在整个图像上,因此称为椒盐噪声,也称为双极冲击噪声。在OpenCV中,可以使用np.random.choice()函数生成椒盐噪声,并将其添加到图像中。添加椒盐噪声后,可以使用plt.hist()函数绘制图像的灰度直方图,以便更好地观察噪声的影响。
下面是一个使用OpenCV添加椒盐噪声的例子:
```python
import cv2
import numpy as np
import matplotlib.pyplot as plt
# 读取图像
img = cv2.imread('lena.jpg', 0)
# 添加椒盐噪声
ps, pp = 0.05, 0.02
mask = np.random.choice((0, 0.5, 1), size=img.shape[:2], p=[pp, (1-ps-pp), ps])
img_noise = img.copy()
img_noise[mask==1] = 255
img_noise[mask==0] = 0
# 绘制图像和灰度直方图
plt.subplot(121)
plt.imshow(img, cmap='gray')
plt.title('Original Image')
plt.axis('off')
plt.subplot(122)
plt.imshow(img_noise, cmap='gray')
plt.title('Image with Salt and Pepper Noise')
plt.axis('off')
plt.figure()
plt.hist(img_noise.ravel(), 256, [0, 256])
plt.title('Histogram of Image with Salt and Pepper Noise')
plt.show()
```
opencv 泊松噪声
Q: 如何在 Python 中使用 OpenCV 添加泊松噪声?
A: 可以使用 OpenCV 的 `randu` 函数生成随机噪声,然后将其添加到图像中。以下是一个示例代码:
```python
import cv2
import numpy as np
# 读取图像
img = cv2.imread('image.jpg')
# 生成随机噪声
noise = np.zeros(img.shape, img.dtype)
cv2.randu(noise, 0, 255)
# 将噪声添加到图像中
noisy_img = cv2.add(img, noise)
# 显示图像
cv2.imshow('Noisy Image', noisy_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```