luna16数据集正样本数据增强程序范例
时间: 2024-02-08 14:25:53 浏览: 33
以下是一个使用Python和OpenCV库进行Luna16数据集正样本数据增强的程序范例:
```python
import cv2
import numpy as np
import os
import random
# 设置原始数据目录和扩充数据保存目录
original_data_dir = 'path/to/original/data'
augmented_data_dir = 'path/to/augmented/data'
# 获取原始数据文件列表
file_list = os.listdir(original_data_dir)
# 设置数据增强参数
rotation_angles = [0, 90, 180, 270] # 旋转角度列表
scale_factors = [0.8, 1.0, 1.2] # 缩放因子列表
flip_flags = [0, 1] # 翻转标志列表 (0表示水平翻转,1表示垂直翻转)
# 数据增强循环
for file_name in file_list:
# 读取原始图像
img = cv2.imread(os.path.join(original_data_dir, file_name))
# 扩充数据保存路径和文件名
save_dir = os.path.join(augmented_data_dir, file_name.split('.')[0])
os.makedirs(save_dir, exist_ok=True)
# 原始图像保存
cv2.imwrite(os.path.join(save_dir, file_name), img)
# 旋转增强
for angle in rotation_angles:
rotated_img = cv2.rotate(img, angle)
cv2.imwrite(os.path.join(save_dir, f'rotated_{angle}.jpg'), rotated_img)
# 缩放增强
for factor in scale_factors:
scaled_img = cv2.resize(img, None, fx=factor, fy=factor)
cv2.imwrite(os.path.join(save_dir, f'scaled_{factor}.jpg'), scaled_img)
# 翻转增强
for flag in flip_flags:
flipped_img = cv2.flip(img, flag)
cv2.imwrite(os.path.join(save_dir, f'flipped_{flag}.jpg'), flipped_img)
```
这个程序使用循环遍历原始数据目录中的文件,对每个文件进行旋转、缩放和翻转等增强操作,并保存到扩充数据目录中。你可以根据自己的需求修改参数和增加其他的数据增强方式。
请确保在运行程序之前,将`original_data_dir`和`augmented_data_dir`替换为正确的路径。同时,确保已经安装了OpenCV库。