深度学习14 基于ImageDataGenerator的语义分割数据扩充

各种参数设置下的扩充效果可见:https://blog.csdn.net/a486259/article/details/120225202

扩充后的某些数据必然是不符合原先的语义标签的,扩充后应该人工对数据进行筛选 

from PIL import Image
import numpy as np
from keras.preprocessing import image
import os
# 生成图片地址和对应标签
file_dir1 = r"语义分割\img"
save_path1="数据-kc\img"
file_dir2 = r"语义分割\label"
save_path2="数据-kc\label"
if not os.path.exists(save_path1):
    os.makedirs(save_path1)
if not os.path.exists(save_path2):
    os.makedirs(save_path2)
shape=(200,200)
seed = 1
# 设置生成器参数
datagen = image.ImageDataGenerator(
                    fill_mode='nearest',   #操作导致图像缺失时填充方式。constant,nearest,eflect,wrap
                                       rotation_range=90	,  # 指定旋转角度范围
                                       zca_whitening=True,#图像白噪音
                                       brightness_range=[0.3,1.5],#添加随机光照
                                       width_shift_range=0.2,  # 水平位置平移
                                       height_shift_range=0.2,  # 上下位置平移
                                       zoom_range=[0.9,1],
                                       horizontal_flip=True,   # 随机对图片执行水平翻转操作
                                       vertical_flip=True,  # 对图片执行上下翻转操作
                                       shear_range=20,
                                       rescale=1./255,  # 缩放
                                       data_format='channels_last')
gen1=datagen.flow_from_directory(file_dir1,
                               target_size=shape,
                               batch_size=15,
                               save_to_dir=save_path1,
                               save_prefix='xx',
                               seed=seed,
                               save_format='jpg')
gen2=datagen.flow_from_directory(file_dir2,
                               target_size=shape,
                               batch_size=15,
                               save_to_dir=save_path2,
                               save_prefix='xx',
                               seed=seed,
                               save_format='jpg')
import math
step=math.ceil(len(gen1.classes)/gen1.batch_size)
#把数据扩充50倍
for i in range(50*step):
    gen1.next()
    gen2.next()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万里鹏程转瞬至

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值