在灰度图像上添加三种不同类型的噪声,并分别输出。
时间: 2023-12-30 18:03:15 浏览: 24
好的,我可以为您提供以下三种类型的噪声:
1. 椒盐噪声:这是一种随机的噪声,其中一些像素变得非常黑或非常白。您可以使用以下代码在灰度图像上添加椒盐噪声:
```python
import numpy as np
import cv2
img = cv2.imread('gray_image.jpg', 0)
# 添加椒盐噪声
noise = np.zeros(img.shape, np.uint8)
cv2.randu(noise, 0, 255)
black = noise < 30
white = noise > 225
img[black] = 0
img[white] = 255
# 显示图像
cv2.imshow('Salt and Pepper Noise', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
2. 高斯噪声:这是一种连续的噪声,它在像素值周围添加随机值。您可以使用以下代码在灰度图像上添加高斯噪声:
```python
import numpy as np
import cv2
img = cv2.imread('gray_image.jpg', 0)
# 添加高斯噪声
mean = 0
var = 100
sigma = var ** 0.5
gaussian = np.random.normal(mean, sigma, img.shape)
noisy_img = img + gaussian.astype(np.uint8)
# 显示图像
cv2.imshow('Gaussian Noise', noisy_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
3. 泊松噪声:这是一种与图像强度相关的噪声,其中每个像素值都被视为来自泊松分布。您可以使用以下代码在灰度图像上添加泊松噪声:
```python
import numpy as np
import cv2
img = cv2.imread('gray_image.jpg', 0)
# 添加泊松噪声
noisy_img = np.random.poisson(img.astype(np.float32))
# 显示图像
cv2.imshow('Poisson Noise', noisy_img.astype(np.uint8))
cv2.waitKey(0)
cv2.destroyAllWindows()
```
请注意,这些代码假设您已经有一张名为“gray_image.jpg”的灰度图像。如果您没有灰度图像,可以使用以下代码从彩色图像中转换:
```python
import cv2
img = cv2.imread('color_image.jpg')
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
```