我试图查看使用 ImageDataGenerator 进行数据扩充的结果。 Keras读取数据,但似乎它不会对它们进行任何生成。我得到了输出:
找到属于1个班级的32个图像。
但是没有生成的图像保存在我在flow_from_directory方法的 save_to_dir 参数中提到的目录中。
这是我的代码:
from keras.preprocessing.image import ImageDataGenerator, array_to_img, img_to_array, load_img
from keras import backend as K
K.set_image_dim_ordering('th')
#the path of images to apply augmentation on them
images_path='train'
#create an instance of ImageDataGenerator
datagen = ImageDataGenerator(width_shift_range=0.2,
height_shift_range=0.2)
datagen.flow_from_directory(directory=images_path, target_size=(480,752),color_mode='grayscale', class_mode=None, save_to_dir='saved',save_prefix='keras_')
img = load_img('train/images/photon10.png')
x = img_to_array(img)
x = x.reshape((1,) + x.shape)
datagen.flow(x,batch_size=1,save_to_dir='saved',save_format='png')
我甚至尝试在一张图片上执行扩充,但它没有保存。
可能是什么原因?我是Keras的先发球员。
注意:课程模式为无,因为我没有特定的类别。
答案 0 :(得分:1)
flow_from_directory()
返回DirectoryIterator
。在迭代此迭代器之前,不会保存文件。
例如,
iterator = datagen.flow_from_directory(...)
next(iterator)
会将一批增强图片保存到save_to_dir
。您还可以在迭代器上使用for循环来控制将生成多少个图像。
答案 1 :(得分:0)
它只是一个声明,您必须使用该生成器,例如.next()
datagen.next()
然后您将在saved
中看到图像