opencv将分类训练集的目录下的图像加入高斯噪声后,按照原本的分类保存到指定目录
时间: 2024-05-15 08:12:42 浏览: 6
可以按照以下步骤进行操作:
1. 加载分类训练集的目录下的所有图像。
2. 循环遍历每张图像,对其进行高斯噪声处理。
3. 将处理后的图像保存到指定目录,并按照原本的分类进行保存。
下面是一个示例代码:
```python
import cv2
import os
# 原始图像目录
src_dir = "train/"
# 噪声图像保存目录
dst_dir = "train_noisy/"
# 噪声参数
mean = 0
sigma = 15
# 遍历原始图像目录下的所有文件
for root, dirs, files in os.walk(src_dir):
for file_name in files:
# 读取图像
img = cv2.imread(os.path.join(root, file_name))
# 添加高斯噪声
noisy_img = cv2.GaussianBlur(img, (5, 5), sigma)
# 保存噪声图像到指定目录
noisy_file_name = os.path.join(dst_dir, os.path.basename(root), file_name)
cv2.imwrite(noisy_file_name, noisy_img)
```
这里使用了 `cv2.GaussianBlur()` 函数来添加高斯噪声,其中 `(5, 5)` 是指高斯核的大小,`sigma` 是噪声的标准差。保存噪声图像时,使用了 `os.path.basename(root)` 来获取原始图像所在的分类目录,并将其作为噪声图像保存的子目录名称。