1

我正在构建一个增强的数据库来改进我的 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
4

1 回答 1

1

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

根据文档flow()还可以将图像保存到磁盘:

save_to_dir:无或 str(默认值:无)。这使您可以选择指定一个目录来保存正在生成的增强图片(对于可视化您正在做的事情很有用)。

于 2019-07-09T19:56:41.370 回答