flow 是使用生成器进行数据增强的一种方法,
具体的参数列表可以参考官网,
实例如下,
# -*- coding: utf-8 -*-
"""
@Time :
@Author : kkk
@File :
@Software: PyCharm
"""
from keras.preprocessing.image import ImageDataGenerator, img_to_array, load_img
import numpy as np
# 实例化一个 ImageDataGenerator
datagen = ImageDataGenerator(
rotation_range=40,
width_shift_range=0.2,
height_shift_range=0.2,
shear_range=0.2,
zoom_range=0.2,
horizontal_flip=True,
fill_mode='nearest'
)
box = []
img1 = load_img(path='test1.png')
img2 = load_img(path='test2.png')
# img is class of 'PIL.PngImagePlugin.PngImageFile'
img1 = img_to_array(img1)
img2 = img_to_array(img2)
# img1 = img1[np.newaxis, :, :, :]
# img2 = img2[np.newaxis, :, :, :]
# img is class of 'numpy.ndarray'
print(img1.shape)
print(img2.shape)
box.append(img1)
box.append(img2)
np_box = np.array(box)
print(np_box.shape)
i = 0
# .flow的方法接受 Numpy array of rank 4 or a tuple 类型的数据,
# .flow_from_dict 的方法接受一个文件夹的路径
for batch in datagen.flow(np_box, batch_size=2,
save_to_dir=r'C:\Users\lk\Desktop\here',
save_format='png'):
i += 1
if i > 2:
break # otherwise the generator would loop indefinitely
可以看到, 输出的结果为
名字应该是随机的