用python实现图片加入高斯噪声
时间: 2024-05-10 07:21:04 浏览: 136
以下是使用Python实现将图像添加高斯噪声的代码:
```python
import cv2
import numpy as np
# 加载图像
img = cv2.imread('image.jpg')
# 高斯噪声函数
def add_gaussian_noise(image, mean=0, sigma=0.1):
"""
添加高斯噪声
:param image: 图像矩阵
:param mean: 均值,默认为0
:param sigma: 标准差,默认为0.1
:return: 添加噪声后的图像矩阵
"""
noise = np.random.normal(mean, sigma, size=image.shape)
out = image + noise
out = np.clip(out, 0, 255) # 将像素值限制在0-255范围内
out = out.astype(np.uint8)
return out
# 添加高斯噪声
img_noise = add_gaussian_noise(img)
# 显示原图和添加噪声后的图像
cv2.imshow('Original', img)
cv2.imshow('Gaussian Noise', img_noise)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上面的代码中,我们首先加载了一张图像,然后定义了一个函数`add_gaussian_noise()`用于添加高斯噪声。该函数接收一个图像矩阵,以及均值和标准差两个参数。我们使用`np.random.normal()`函数生成指定均值和标准差的高斯噪声,然后将其加到原始图像上。最后,我们使用`np.clip()`函数将像素值限制在0-255范围内,并将其转换为整数类型。
最后,我们调用`add_gaussian_noise()`函数并将原始图像作为参数传递给它,然后显示原始图像和添加噪声后的图像。
阅读全文