给灰度图像添加高斯噪声
时间: 2023-09-10 11:11:35 浏览: 206
在Python中,可以使用NumPy和OpenCV库来给灰度图像添加高斯噪声。以下是一个简单的示例代码:
```python
import cv2
import numpy as np
# 读取灰度图像
img = cv2.imread('gray_image.jpg', 0)
# 添加高斯噪声
mean = 0
variance = 100
sigma = np.sqrt(variance)
gaussian = np.random.normal(mean, sigma, img.shape)
noisy_image = img + gaussian
# 显示原始图像和添加噪声后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Noisy Image', noisy_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在这个示例中,我们首先使用`cv2.imread()`函数读取灰度图像,然后使用`np.random.normal()`函数生成指定均值和方差的高斯噪声。最后,将噪声添加到原始图像中以生成带噪声的图像,并使用`cv2.imshow()`函数显示原始图像和添加噪声后的图像。
相关问题
MATLAB灰度图像添加高斯噪声、椒盐噪声
对于灰度图像,我们可以使用MATLAB内置的函数`imnoise`来添加高斯噪声和椒盐噪声。
添加高斯噪声:
```matlab
% 读取灰度图像
img = imread('lena.jpg');
% 添加高斯噪声,其中0.05为噪声强度,即噪声占图像像素总数的比例
img_noise = imnoise(img, 'gaussian', 0, 0.05);
% 显示原始图像和添加噪声后的图像
subplot(1,2,1), imshow(img), title('Original Image');
subplot(1,2,2), imshow(img_noise), title('Gaussian Noise Image');
```
添加椒盐噪声:
```matlab
% 读取灰度图像
img = imread('lena.jpg');
% 添加椒盐噪声,其中0.05为噪声强度,即噪声占图像像素总数的比例
img_noise = imnoise(img, 'salt & pepper', 0.05);
% 显示原始图像和添加噪声后的图像
subplot(1,2,1), imshow(img), title('Original Image');
subplot(1,2,2), imshow(img_noise), title('Salt & Pepper Noise Image');
```
其中,`imnoise`函数的第二个参数可以取`'gaussian'`、`'salt & pepper'`、`'poisson'`等字符串,分别表示添加高斯噪声、椒盐噪声、泊松噪声等。第三个参数为噪声均值,对于高斯噪声和泊松噪声有效;第四个参数为噪声方差,对于高斯噪声有效。
给灰度图像加入高斯噪声
可以使用Python中的OpenCV库来为灰度图像添加高斯噪声。下面是示例代码:
```python
import cv2
import numpy as np
img = cv2.imread('gray_image.png', 0) # 读取灰度图像
h, w = img.shape
# 为图像添加高斯噪声
mean = 0
variance = 10
sigma = variance ** 0.5
gauss = np.random.normal(mean, sigma, (h, w))
gauss = gauss.reshape(h, w)
noisy_img = img + gauss
cv2.imwrite('noisy_image.png', noisy_img) # 保存带有高斯噪声的图像
```
在上面的代码中,我们首先使用OpenCV库的`imread()`函数读取灰度图像,并获得其高度和宽度。然后,我们使用NumPy库中的`np.random.normal()`函数生成高斯噪声,其中`mean`是噪声的均值,`variance`是方差,`sigma`是标准差。接下来,我们将高斯噪声添加到灰度图像中,并保存生成的带有高斯噪声的图像。
阅读全文