python opencv 添加噪声
时间: 2025-05-12 11:28:17 浏览: 26
### 添加噪声到图像的方法
为了向图像添加噪声,可以利用 Python 和 OpenCV 实现这一功能。通过引入随机分布的像素扰动,能够增强模型对于真实世界数据变化的适应能力[^2]。
以下是具体实现方法:
#### 安装依赖库
在开始之前,请确保已安装必要的库 `opencv` 或其扩展版本 `opencv-python`。可以通过以下命令完成安装:
```bash
pip install opencv-python
```
或者如果使用 Conda 环境,则运行:
```bash
conda install -c conda-forge opencv
```
#### 噪声函数定义
下面是一个用于为输入图像添加高斯噪声的函数示例。该函数接受一张图片作为参数并返回带有噪声的新图片数组。
```python
import cv2
import numpy as np
def add_gaussian_noise(image):
"""
Adds Gaussian noise to an input image.
Parameters:
image (numpy.ndarray): The original clean image.
Returns:
numpy.ndarray: Image with added Gaussian noise.
"""
row, col, ch = image.shape # 获取图像尺寸和通道数
mean = 0 # 高斯分布均值设为零
var = 0.1 # 方差设定较小数值以控制强度
sigma = var ** 0.5 # 计算标准偏差
gauss = np.random.normal(mean, sigma, (row, col, ch)) # 创建匹配大小的正态分布矩阵
gauss = gauss.reshape(row, col, ch).astype(np.float32) # 调整形状与类型兼容性
noisy_image = np.clip(image.astype(np.float32) + gauss, 0, 255).astype(np.uint8) # 加入噪声后裁剪范围至有效区间
return noisy_image
```
此代码片段实现了基于高斯分布的加法型白噪音生成过程,并将其叠加于原始彩色图之上。
#### 测试噪声效果
加载测试用样本文件路径中的某张照片来进行验证演示操作流程如下所示:
```python
if __name__ == "__main__":
# Load sample image
img_path = 'example.jpg'
img_clean = cv2.imread(img_path)
if img_clean is not None:
# Add gaussian noise
img_noisy = add_gaussian_noise(img_clean.copy())
# Display both images side by side for comparison purposes only; remove when deploying code elsewhere.
combined_img = np.hstack((img_clean, img_noisy))
cv2.imshow('Original vs Noisy',combined_img )
key=cv2.waitKey(0)&0xFF
if(key==ord('q')):
pass
finally:
cv2.destroyAllWindows()
```
上述脚本会打开窗口显示原片以及处理后的效果图以便观察差异之处。
---
阅读全文
相关推荐


















