Image processing 使用keras.preprocessing.Image.ImageDataGenerator的图像数据处理技术?

Image processing 使用keras.preprocessing.Image.ImageDataGenerator的图像数据处理技术?,image-processing,machine-learning,tensorflow,computer-vision,keras,Image Processing,Machine Learning,Tensorflow,Computer Vision,Keras,我想通过随机旋转、移位、剪切和翻转为图像生成增强数据 我找到了keras函数 函数keras.preprocessing.image.ImageDataGenerator,但我看到它被用来直接训练网络 是否有一种方法可以输入图像,然后将转换后的图像保存在HDD上,而不是在本示例中if当前的工作方式 或者我可以使用另一个简单的即插即用python包,而不是用numpy或opencv实现一切?基本上-这是生成器,它无限地返回一批图像。我们可以做到以下几点: def save_images_from_

我想通过随机旋转、移位、剪切和翻转为图像生成增强数据

我找到了
keras
函数

函数
keras.preprocessing.image.ImageDataGenerator
,但我看到它被用来直接训练网络

是否有一种方法可以输入图像,然后将转换后的图像保存在HDD上,而不是在本示例中if当前的工作方式


或者我可以使用另一个简单的即插即用python包,而不是用
numpy
opencv
实现一切?

基本上-这是
生成器,它无限地返回一批图像。我们可以做到以下几点:

def save_images_from_generator(maximal_nb_of_images, generator):
    nb_of_images_processed = 0
    for x, _ in generator:
        nb_of_images += x.shape[0]
        if nb_of_images <= maximal_nb_of_images:
            for image_nb in range(x.shape[0]):
                your_custom_save(x[image_nb]) # your custom function for saving images
        else:
            break
def save_images_from_generator(最大_nb_图像数,generator):
nb_图像的_处理=0
对于x,发电机中的u:
nb_的_图像+=x.shape[0]

如果nb_of_images您可以将ImageGenerator输出的图像保存到HDD。一个选项是使用datagen.flow,如下所示:

for X_batch, y_batch in datagen.flow(X_train, y_train, batch_size=9, save_to_dir='images', save_prefix='aug', save_format='png')
第二个选项是手动循环每个图像,加载它,然后应用随机变换。实例化ImageGenerator后,只需调用:

img_trans = datagen.random_transform(img)
然后,使用PIL等将转换后的图像保存到HDD

第三个选项是手动循环每个图像,加载它,并使用第三方程序应用随机变换。我推荐伊姆高格