randn函数加噪声_numpy给图片加高斯噪声
时间: 2023-08-01 10:07:23 浏览: 157
图像加噪声
可以使用`numpy.random.randn`函数生成高斯分布的随机数,并将其加到图片的每个像素值上,从而实现给图片加高斯噪声的效果。具体步骤如下:
1. 导入numpy库和matplotlib库(用于显示图片):
```
import numpy as np
import matplotlib.pyplot as plt
```
2. 加载图片,并将其转换为numpy数组:
```
img = plt.imread('image.jpg')
img_arr = np.array(img)
```
3. 生成与图片大小相同的高斯噪声数组:
```
noise = np.random.randn(*img_arr.shape)
```
4. 定义噪声强度(标准差),并将噪声数组乘以该强度:
```
noise_std = 0.1
noise *= noise_std
```
5. 将噪声数组加到图片数组上,并对超过像素值范围 [0,1] 的值进行截断:
```
img_noisy = np.clip(img_arr + noise, 0, 1)
```
6. 显示加噪声后的图片:
```
plt.imshow(img_noisy)
plt.show()
```
注意:此方法仅适用于灰度图像或单通道图像。对于RGB图像,需要将每个通道分别加噪声。
阅读全文