文件存放格式:图片存放在对应的文件夹下
。
使用方式:
(1)路径改一下
(2)if count == 2: # 生成多少个样本后退出
Ctrl-F搜索这句话,改一下。
(3)图片生成后还是存放在原来的文件夹下。如有其他需求,请修改:date_enhancement(picture, class_path)
中的class_path
import numpy as np
from keras.preprocessing.image import ImageDataGenerator
from keras.preprocessing.image import img_to_array
from keras.preprocessing.image import load_img
import os
os.environ['KERAS_BACKEND'] = 'tensorflow'
def date_enhancement(img_input_path, img_output_path):
image = load_img(img_input_path)
image = img_to_array(image) # 图像转为数组
image = np.expand_dims(image, axis=0) # 增加一个维度
img_dag = ImageDataGenerator(rotation_range=35,
width_shift_range=0.2,
height_shift_range=0.2, # 浮点数,垂直平移百分比,不宜太大一般0.1,0.2
brightness_range=[0.3, 0.5], # 浮点数,亮度调整。
shear_range=0.2,
vertical_flip=True, # 垂直翻转,看应用场景使用。
zoom_range=0.2,
validation_split=0.2,
horizontal_flip=True,
fill_mode="nearest") # 旋转,宽度移动范围,高度移动范围,裁剪范围,水平翻转开启,填充模式
img_generator = img_dag.flow(image, batch_size=1,
save_to_dir=img_output_path,
save_prefix="image", save_format="jpg")
count = 0 # 计数器
for img in img_generator:
count += 1
if count == 2: # 生成多少个样本后退出
break
if __name__ == "__main__":
# 原始图片的存储位置
orig_picture = 'D:/1/XiongAnDatasets/AID_1'
classes = {'Bridge', 'Meadow', 'River', 'Mountain', 'Beach', 'Farmland', 'Forest'}
for index, name in enumerate(classes):
class_path = orig_picture + '/' + name
for pic in os.listdir(class_path):
picture = class_path + '/' + pic
date_enhancement(picture, class_path)