用高斯噪声污染图像im0
时间: 2023-06-30 09:15:50 浏览: 40
可以使用以下代码使用高斯噪声污染图像`im0`:
```python
import numpy as np
import cv2
# 读取图像
im0 = cv2.imread('image.jpg')
# 生成高斯噪声
mean = 0
var = 0.1
sigma = var**0.5
gaussian = np.random.normal(mean, sigma, im0.shape)
# 将高斯噪声加到原始图像上
im_noisy = im0 + gaussian
# 将像素值限制在0-255之间
im_noisy = np.clip(im_noisy, 0, 255)
# 将图像转换为整数类型
im_noisy = np.uint8(im_noisy)
# 保存污染后的图像
cv2.imwrite('noisy_image.jpg', im_noisy)
```
其中,`mean`表示高斯分布的均值,`var`表示方差,`sigma`表示标准差。我们可以通过调整`var`的值来控制高斯噪声的强度。在这个例子中,`var`被设置为了0.1,这意味着高斯噪声的标准差为0.1的平方根。
最后,我们使用`np.clip`函数将像素值限制在0-255之间,并将图像转换为整数类型。最终,污染后的图像`im_noisy`将保存在当前目录下的`noisy_image.jpg`文件中。
相关问题
matlab图像加高斯噪声代码
可以使用以下代码将高斯噪声添加到Matlab图像中:
```matlab
I = imread('image.jpg'); % 读取图像
I = im2double(I); % 转换为双精度浮点数
sigma = 0.1; % 噪声标准差
J = imnoise(I, 'gaussian', 0, sigma^2); % 添加高斯噪声
imshow(J); % 显示图像
```
其中,`imread`函数用于读取图像,`im2double`函数用于将图像转换为双精度浮点数,`sigma`代表噪声的标准差,`imnoise`函数用于添加高斯噪声,`imshow`函数用于显示图像。你可以根据自己的需求修改代码。
生成高斯噪声
可以使用以下代码生成高斯噪声:
```python
import numpy as np
# 生成高斯噪声
mean = 0
var = 0.1
sigma = var**0.5
gaussian = np.random.normal(mean, sigma, (H, W, C))
# 将高斯噪声加到原始图像上
im_noisy = im0 + gaussian
```
其中,`mean`表示高斯分布的均值,`var`表示方差,`sigma`表示标准差。我们可以通过调整`var`的值来控制高斯噪声的强度。在这个例子中,`var`被设置为了0.1,这意味着高斯噪声的标准差为0.1的平方根。
`np.random.normal`函数用于生成均值为`mean`,标准差为`sigma`的高斯分布随机数。我们将随机数生成在一个大小为`(H, W, C)`的数组中,其中`H`,`W`和`C`分别表示图像的高度、宽度和通道数。
最后,将生成的高斯噪声加到原始图像`im0`上即可得到一幅带有高斯噪声的图像`im_noisy`。