给灰度图像添加高斯噪声
时间: 2023-09-04 20:15:53 浏览: 269
添加高斯噪声的方法可以使用numpy包中的random.normal函数来实现。具体步骤如下:
1. 将灰度图像转换为numpy数组。
2. 生成一个与图像大小相同的随机数矩阵,其中每个元素都是从均值为0、标准差为1的正态分布中随机取得的数。
3. 将随机数矩阵乘以预设的标准差值,再加上预设的均值,得到高斯噪声矩阵。
4. 将高斯噪声矩阵加到原始图像数组中。
5. 将图像数组的值限制在0到255之间,并将其转换回图像格式。
代码示例:
```python
import numpy as np
import cv2
img = cv2.imread('gray_image.jpg', 0) # 读入灰度图像
mean = 0
stddev = 50 # 标准差值,可以根据需要调整
noise = np.random.normal(mean, stddev, img.shape) # 生成高斯噪声矩阵
noisy_img = img + noise.astype('uint8') # 添加噪声
noisy_img = np.clip(noisy_img, 0, 255).astype('uint8') # 将像素值限制在0-255之间
cv2.imshow('original', img)
cv2.imshow('noisy', noisy_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
注意:由于高斯噪声矩阵中的数是浮点数,需要使用astype方法将其转换为与原始图像数据类型相同的整数类型。同时,添加噪声后的像素值可能会超出0-255的范围,需要使用clip方法将其限制在0-255之间。
阅读全文