Python 从图像生成器打印图像
我正在尝试绘制由图像生成器创建的图像。到目前为止,这是我提供给发电机的数据代码:Python 从图像生成器打印图像,python,image-processing,keras,data-augmentation,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),
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()
我问了这个问题,但没有成功
如何绘制(例如)由我的imageGenerator
生成的前n个图像
编辑:
我添加了上面提到的问题中使用的代码,但我得到了以下错误:
---------------------------------------------------------------------------
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)
---------------------------------------------------------------------------
ValueError回溯(最近一次调用上次)
在里面
54 valid\u gen=zip(valid\u img\u gen,valid\u mask\u gen)
55
--->56 x\u批次,y\u批次=下一个(生产线)
57表示范围(0,32)内的i:
58图像=x_批次[i]
ValueError:要解压缩的值太多(应为2个)
最后我解决了这个问题,这是一个尺寸问题
工作守则是:
x= train_img_gen.next()
for i in range(0,4):
image = x[i]
plt.imshow(image)
plt.show()
生成器为每次迭代返回一个具有形状(4256256,3)
的矩阵,这意味着我们有4个大小为256x256的图像和3个通道(RGB)
ImageDataGenerator
一次处理4个图像的“块”(至少在这种情况下,我没有官方参考每次加载多少图像),因为它的主要目的是在训练模型时动态加载图像(避免在内存中预加载大量数据)。您收到错误消息了吗?始终将完整的错误消息(从单词“Traceback”开始)作为文本(而不是屏幕截图)进行讨论(不是评论)。还有其他有用的信息。使用错误将结果分配到一个变量result=next(train\u img\u gen)
编辑并打印它print(result)
-它似乎只返回一个值,而不是您期望的两个值。可能您需要在x\u batch=next(train\u img\u gen)
上运行。结果返回具有此形状的元素矩阵:(4、256、256、3),因此您可能有4个大小256x256
和RGB(3)颜色的图像。您可以尝试显示plt.imshow(结果[0])
plt.imshow(结果[1])
,等等。“它由x和y组成”是什么意思?图像和类
x= train_img_gen.next()
for i in range(0,4):
image = x[i]
plt.imshow(image)
plt.show()