如何使用python方法“ ImageDataGenerator”并将增强的图像保存在变量中?

时间:2019-07-09 17:35:03

标签: python-3.x keras data-generation data-augmentation

我有点麻烦... 我正在构建增强数据库以改进CNN。该方案是: -我一次发送一张图像,以生成其他40张图像。 -引用的方法将增强图像保存在目录中,但是我想将其保存在变量中而不先保存在计算机中。也就是说,我想直接保存在变量中。

上面的代码显示了我在说什么。看一下参数“ save_to_dir” ...如果忽略它,将进行处理,但是数据不会保存在任何地方。 谁能帮我吗?

import numpy as np
from keras.preprocessing.image import load_img
from keras.preprocessing.image import img_to_array
from keras.preprocessing.image import ImageDataGenerator
import matplotlib.pyplot as plt
import cv2

IMAGE_PATH = "---"
OUTPUT_PATH = "---"

image = cv2.imread(IMAGE_PATH)
plt.imshow(image)

image = np.expand_dims(image, axis=0)

imgAug = ImageDataGenerator(rotation_range=360, width_shift_range=0.1, height_shift_range=0.1, zoom_range=0.20, fill_mode='wrap',     horizontal_flip=True, vertical_flip=True)

imgGen = imgAug.flow(image, save_to_dir=OUTPUT_PATH,
                     save_format='png', save_prefix='dentezudo_')

counter = 0
for (i, newImage) in enumerate(imgGen):
    counter += 1

    if counter == 10:
        break

1 个答案:

答案 0 :(得分:0)

函数.flow()返回一个生成器,您可以对其进行迭代(就像您在代码中所做的那样)以获取图像。在您的代码中,增强图像将分配给newImage

根据the docsflow()也可以将图像保存到磁盘:

  

save_to_dir:无或str(默认值:无)。这使您能够   可以选择指定一个目录,将扩充后的图片保存到该目录   被生成(用于可视化您在做什么)。