ImageDataGenerator не сохраняет ожидаемое количество изображений на диск

Я использую ImageDataGenerator для увеличения некоторых изображений. У меня есть в общей сложности 19 исходных изображений (разделение 14/5), но когда я запускаю приведенный ниже код, я не получаю ожидаемых 1900 (100 дополнений) изображений. На самом деле каждый запуск может производить разное количество изображений (например, я однажды получил 1391/495).

      #Augment Data Seperated

from tensorflow.keras.preprocessing.image import ImageDataGenerator
import matplotlib.pyplot as plt

NumAug = 100

dirnameWriteCancer = ImageDir + r"\AugData" + str(NumAug) +'x' + r"\Cancer"
dirnameWriteControl = ImageDir + r"\AugData" + str(NumAug) + 'x' + r"\Control"

#HomePC
# dirnameWriteCancer = r"E:\Dropbox\Research\Tamiki_Group\Data\SonoshitaLabData\2D_Images\AugData\Cancer"
# dirnameWriteControl = r"E:\Dropbox\Research\Tamiki_Group\Data\SonoshitaLabData\2D_Images\AugData\Control"

# gen = ImageDataGenerator(rotation_range=10, width_shift_range=0.1, height_shift_range=0.1, shear_range=0.15, zoom_range=0.1, 
#     channel_shift_range=10., horizontal_flip=True)

gen = ImageDataGenerator(rotation_range=10, width_shift_range=0.1, height_shift_range=0.1, shear_range=0.15, zoom_range=0.1, 
                         horizontal_flip=True)
def plotImages(images_arr):
    fig, axes = plt.subplots(1, 10, figsize=(20,20))
    axes = axes.flatten()
    for img, ax in zip( images_arr, axes):
        ax.imshow(img)
        ax.axis('off')
    plt.tight_layout()
    plt.show()

# plt.imshow(ImageData[0])

aug_iterCancer = gen.flow(ImageDataCancer, save_to_dir=dirnameWriteCancer, save_prefix='aug-image-', save_format='jpeg')
aug_iterControl = gen.flow(ImageDataControl, save_to_dir=dirnameWriteControl, save_prefix='aug-image-', save_format='jpeg')

# aug_iterCancer = gen.flow(ImageDataCancer)
# aug_iterControl = gen.flow(ImageDataControl)

aug_imagesCancer = [next(aug_iterCancer)[0].astype(np.uint8) for i in range(NumAug)]
aug_imagesControl = [next(aug_iterControl)[0].astype(np.uint8) for i in range(NumAug)]

# plotImages(aug_images)

Кто-нибудь испытал это? В настоящее время я подозреваю, что каким-то образом создается одно и то же имя файла и перезаписывается другое изображение, но я также не уверен, как выбираются имена файлов.

Спасибо за помощь.

0 ответов

Другие вопросы по тегам