使用imgaug数据库对“1”文件夹中的png图像进行随机裁剪、翻转、旋转、色彩变换操作,并将增强后的图片和原图保存在“1”文件夹中
时间: 2023-06-26 08:06:17 浏览: 73
图片裁剪,放大,缩小,旋转
可以使用以下代码实现:
```python
import os
import random
import cv2
import imgaug as ia
from imgaug import augmenters as iaa
# 定义数据增强的方式
seq = iaa.Sequential([
iaa.Crop(px=(0, 16)), # 随机裁剪
iaa.Fliplr(0.5), # 随机水平翻转
iaa.Affine(rotate=(-45, 45)), # 随机旋转
iaa.Sometimes(0.5, iaa.GaussianBlur(sigma=(0, 0.5))), # 高斯模糊
iaa.Sometimes(0.5, iaa.AdditiveGaussianNoise(scale=(0, 0.05*255))), # 加入高斯噪声
iaa.Sometimes(0.5, iaa.Multiply((0.8, 1.2))), # 色彩变换
iaa.Sometimes(0.5, iaa.ContrastNormalization((0.75, 1.5)))
])
# 遍历文件夹中的png图像
dir_path = "./1"
for filename in os.listdir(dir_path):
if filename.endswith(".png"):
# 读取图像
img = cv2.imread(os.path.join(dir_path, filename))
# 进行数据增强
images_aug = seq(images=[img])
# 保存增强后的图片和原图
for idx, image_aug in enumerate(images_aug):
cv2.imwrite(os.path.join(dir_path, f"{os.path.splitext(filename)[0]}_{idx}.png"), image_aug)
cv2.imwrite(os.path.join(dir_path, f"{os.path.splitext(filename)[0]}_origin.png"), img)
```
代码中使用了 imgaug 库来实现数据增强,定义了一些常见的增强方式,并使用 `Sequential` 将它们组合在一起。然后遍历了文件夹中的 png 图像,使用 `imread` 读取图像,然后使用 `seq` 对图像进行增强,最后将增强后的图片和原图一起保存在原文件夹中。
阅读全文