在我的Jupyter笔记本中,我试图显示一个我正在通过Keras迭代的图像。我使用的代码如下
$("#date_filter_si").contents().filter(function() {
return this.nodeType === 3;
}).remove();
但这仅绘制单个通道,因此我的图像为灰度。如何使用3个通道输出彩色图像图。 ?
答案 0 :(得分:4)
如果要显示RGB图像,则必须提供所有三个通道。根据您的代码,您只显示第一个频道,因此matplotlib
没有信息将其显示为RGB。相反,它会将值映射到gray
色彩映射,因为您调用了plt.gray()
相反,您需要将RGB图像的所有通道传递到imshow
,然后使用真彩色显示,并忽略图形的颜色图
sub.imshow(imgs, interpolation='nearest')
更新
由于imgs
实际上是2 x 3 x 224 x 224
,因此您需要在显示图片之前将imgs
编入索引并将尺寸置换为224 x 224 x 3
im2display = imgs[1].transpose((1,2,0))
sub.imshow(im2display, interpolation='nearest')
答案 1 :(得分:0)
它对你有用: 尝试通过允许将频道放在最后,
image.permute(2 , 3 , 1 , 0)
然后通过 np.squeeze() 删除图像索引:
plt.imshow((np.squeeze(image.permute(2 , 3 , 1 , 0))))