keras进行图像数据增强

  • 导入相应的包
from keras.preprocessing.image import ImageDataGenerator, array_to_img ,img_to_array, load_img
import numpy as np
  • 创建一个数据生成器对象
datagen = ImageDataGenerator(
    rotation_range = 40,     # 随机旋转度数
    width_shift_range = 0.2, # 随机水平平移
    height_shift_range = 0.2,# 随机竖直平移
    rescale = 1/255,         # 数据归一化
    shear_range = 20,       # 随机错切变换
    zoom_range = 0.2,        # 随机放大
    horizontal_flip = True,  # 水平翻转
    fill_mode = 'nearest',   # 填充方式
) 
  • 参数说明
    rotation_range是一个0~180的度数,用来指定随机选择图片的角度。
    width_shift和height_shift用来指定水平和竖直方向随机移动的程度,这是两个0~1之间的比
    rescale值将在执行其他处理前乘到整个图像上,我们的图像在RGB通道都是0255的整数,这样的操作可能使图像的值过高或过低,所以我们将这个值定为01之间的数。
    shear_range是用来进行错切变换的程度,参考错切变换
    zoom_range用来进行随机的放大
    horizontal_flip随机的对图片进行水平翻转,这个参数适用于水平翻转不影响图片语义的时候
    fill_mode用来指定当需要进行像素填充,如旋转,水平和竖直位移时,如何填充新出现的像素
  • 载入一张要进行数据增强的图像
# 载入图片
img = load_img('image/train/cat/cat.1.jpg')
x = img_to_array(img)
print(x.shape)

在这里插入图片描述

  • 提升维度,生成器对象方法要求传入参数是四维
x = np.expand_dims(x,0)
print(x.shape)
  • 生成20张图片
i = 0
for batch in datagen.flow(x, batch_size=1, save_to_dir='temp', save_prefix='new_cat', save_format='jpeg'):
    i += 1
    if i==20:
        break
print('finished!')

在这里插入图片描述
生成了20张增强后的图像

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值