帮我用python写一个批量数据增强jpg格式的代码
时间: 2023-08-28 12:54:11 浏览: 43
当然可以!以下是一个使用Python和OpenCV库进行批量图像增强的示例代码:
```python
import os
import cv2
def data_augmentation(input_folder, output_folder):
# 获取输入文件夹中的所有文件
file_list = os.listdir(input_folder)
for file_name in file_list:
# 读取图像
image_path = os.path.join(input_folder, file_name)
image = cv2.imread(image_path)
# 图像翻转
flipped_image = cv2.flip(image, 1) # 1表示水平翻转,0表示垂直翻转
# 图像旋转
rows, cols = image.shape[:2]
M = cv2.getRotationMatrix2D((cols/2, rows/2), 45, 1) # 旋转45度
rotated_image = cv2.warpAffine(image, M, (cols, rows))
# 图像缩放
scaled_image = cv2.resize(image, None, fx=0.8, fy=0.8) # 缩小为原来的80%
# 图像亮度调整
brightness_image = cv2.convertScaleAbs(image, alpha=1.2, beta=10) # 增加亮度
# 保存增强后的图像
flipped_path = os.path.join(output_folder, 'flipped_' + file_name)
rotated_path = os.path.join(output_folder, 'rotated_' + file_name)
scaled_path = os.path.join(output_folder, 'scaled_' + file_name)
brightness_path = os.path.join(output_folder, 'brightness_' + file_name)
cv2.imwrite(flipped_path, flipped_image)
cv2.imwrite(rotated_path, rotated_image)
cv2.imwrite(scaled_path, scaled_image)
cv2.imwrite(brightness_path, brightness_image)
# 测试代码
input_folder = 'input_folder'
output_folder = 'output_folder'
data_augmentation(input_folder, output_folder)
```
这个代码会读取名为 `input_folder` 的文件夹中的所有图像,并对每个图像进行翻转、旋转、缩放和亮度调整等增强操作,然后将增强后的图像保存到名为 `output_folder` 的文件夹中。你可以根据自己的需求修改函数中的增强方法和参数。记得安装 OpenCV 库:`pip install opencv-python`。