python给图像加高斯噪声和去噪
时间: 2023-08-10 22:00:44 浏览: 162
要给图像加高斯噪声和去噪,我们可以使用Python中的OpenCV库。首先,我们需要导入必要的库和图像。
```python
import cv2
import numpy as np
# 加载图像
image = cv2.imread('image.jpg')
```
接下来,我们可以通过使用`cv2.randn()`函数来添加高斯噪声。该函数可以生成一个具有指定均值和标准差的随机高斯数组,与原始图像尺寸相同。
```python
# 生成高斯噪声
mean = 0
std_deviation = 50
gaussian_noise = np.zeros(image.shape, np.uint8)
cv2.randn(gaussian_noise, mean, std_deviation)
```
可以调整`mean`和`std_deviation`的值来控制噪声的强度。生成的高斯噪声数组与原始图像相加。
```python
# 添加高斯噪声到图像
noisy_image = cv2.add(image, gaussian_noise)
```
现在图像上添加了高斯噪声。如果要将其去噪,可以使用OpenCV库中的`cv2.fastNlMeansDenoising()`函数。
```python
# 去噪
denoised_image = cv2.fastNlMeansDenoisingColored(noisy_image, None, 10, 10, 7, 21)
```
在这里,我们使用了`cv2.fastNlMeansDenoisingColored()`函数来对带有高斯噪声的彩色图像进行去噪。该函数采用一些参数,如去噪强度、空间窗口大小和色彩距离权重等。您可以根据需要调整这些参数。
最后,可以使用`cv2.imshow()`函数显示添加了高斯噪声和去噪后的图像。
```python
# 显示结果
cv2.imshow('Original Image', image)
cv2.imshow('Noisy Image', noisy_image)
cv2.imshow('Denoised Image', denoised_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
通过运行以上代码,您将能够在显示窗口中看到原始图像、添加了高斯噪声的图像和经过去噪处理的图像。
阅读全文