在灰度图像I1上增加不同类型(类型>=3)的噪声,分别生成噪声图像
时间: 2024-01-22 15:18:35 浏览: 39
好的,下面是增加不同类型噪声的代码示例:
```python
import numpy as np
import cv2
# 读入灰度图像
img = cv2.imread('path/to/image', cv2.IMREAD_GRAYSCALE)
# 添加高斯噪声
mean = 0
variance = 100
sigma = np.sqrt(variance)
gaussian_noise = np.random.normal(mean, sigma, img.shape)
noisy_img_gaussian = img + gaussian_noise.astype(np.uint8)
# 添加椒盐噪声
s_vs_p = 0.5
amount = 0.05
num_salt = np.ceil(amount * img.size * s_vs_p)
num_pepper = np.ceil(amount * img.size * (1.0 - s_vs_p))
salt_coords = [np.random.randint(0, i - 1, int(num_salt)) for i in img.shape]
pepper_coords = [np.random.randint(0, i - 1, int(num_pepper)) for i in img.shape]
noisy_img_salt_pepper = img.copy()
noisy_img_salt_pepper[salt_coords] = 255
noisy_img_salt_pepper[pepper_coords] = 0
# 添加泊松噪声
lam = 10
poisson_noise = np.random.poisson(lam, img.shape)
noisy_img_poisson = img + poisson_noise.astype(np.uint8)
# 显示原图和噪声图像
cv2.imshow('Original Image', img)
cv2.imshow('Gaussian Noise', noisy_img_gaussian)
cv2.imshow('Salt and Pepper Noise', noisy_img_salt_pepper)
cv2.imshow('Poisson Noise', noisy_img_poisson)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
其中,高斯噪声利用 `numpy.random.normal` 函数生成,椒盐噪声利用随机数生成器在图像上随机生成椒盐噪声,泊松噪声则利用 `numpy.random.poisson` 函数生成。最后用 OpenCV 显示原始图像和添加噪声后的图像。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)