我有点麻烦... 我正在构建增强数据库以改进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
答案 0 :(得分:0)
函数.flow()
返回一个生成器,您可以对其进行迭代(就像您在代码中所做的那样)以获取图像。在您的代码中,增强图像将分配给newImage
。
根据the docs,flow()
也可以将图像保存到磁盘:
save_to_dir:无或str(默认值:无)。这使您能够 可以选择指定一个目录,将扩充后的图片保存到该目录 被生成(用于可视化您在做什么)。