Как использовать метод python «ImageDataGenerator» и сохранить дополненные изображения в переменной? - PullRequest
0 голосов
/ 09 июля 2019

У меня небольшая проблема ... Я создаю расширенную базу данных, чтобы улучшить мой 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 голосов
/ 09 июля 2019

Функция .flow() возвращает генератор, который вы можете перебирать (как в своем коде), чтобы получить ваши изображения.В вашем коде дополненные изображения будут назначены на newImage.

. В соответствии с документами , flow() также можно сохранять изображения на диск:

save_to_dir: нет или str (по умолчанию: нет).Это позволяет вам дополнительно указать каталог, в который будут сохраняться создаваемые расширенные изображения (полезно для визуализации того, что вы делаете).

...