从图像生成器绘制图像

Mat*_*hio 3 python image-processing keras data-augmentation

我正在尝试绘制由图像生成器创建的图像。到目前为止,这是我提供给生成器的数据代码:

train_img_gen = train_img_data_gen.flow_from_directory(os.path.join(training_dir, 'images'),
                                                   target_size=(img_h, img_w),
                                                   batch_size=bs, 
                                                   class_mode=None, # Because we have no class subfolders in this case
                                                   shuffle=True,
                                                   interpolation='bilinear',
                                                   seed=SEED)
#edited part following the already existing answer on stackoverflow
x_batch, y_batch = next(train_img_gen)
for i in range (0,32):
    image = x_batch[i]
    plt.imshow(image.transpose(2,1,0))
    plt.show()
Run Code Online (Sandbox Code Playgroud)

我遵循了这个问题:Keras images,但没有任何成功。

我如何绘制(例如)由我生成的前 n 个图像imageGenerator

编辑 :

我添加了上述问题中使用的代码,但出现此错误:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-7-1a18ce1c1a76> in <module>
     54 valid_gen = zip(valid_img_gen, valid_mask_gen)
     55 
---> 56 x_batch, y_batch = next(train_img_gen)
     57 for i in range (0,32):
     58     image = x_batch[i]

ValueError: too many values to unpack (expected 2)
Run Code Online (Sandbox Code Playgroud)

Mat*_*hio 7

最后我解决了这个问题,这是一个尺寸问题。

工作代码是:

x= train_img_gen.next()
for i in range(0,4):
    image = x[i]
    plt.imshow(image)
    plt.show()
Run Code Online (Sandbox Code Playgroud)

生成器为每次迭代返回一个形状为 的矩阵(4,256,256,3),这意味着我们有 4 个大小为 256x256 的图像和 3 个通道 (RGB)。

一次使用ImageDataGenerator4 个图像的“块”(至少在这种情况下,我没有关于每次加载多少图像的官方参考),因为它的主要目的是在训练模型时动态加载图像(避免在内存中预加载大量数据)。