【问题标题】:plt.imshow() only shows black and white imagesplt.imshow() 只显示黑白图像
【发布时间】:2021-01-08 11:12:57
【问题描述】:

我正在尝试绘制显着性图。原图(png(224,224,3)的文件形状)是这样的:

当我阅读图像并尝试使用plt.imshow(_img) 绘制它时,它看起来像这样:

因此,我的显着性图如下所示:

我试过cmap作为rgbgray等功能。似乎没有任何效果。

有什么解决办法吗?

编辑:

这是我如何读取图像的代码:

_img = keras.preprocessing.image.load_img(img_,target_size=(512,512))
plt.imshow(_img)

print(type(_img)) print(_img.format) print(_img.mode) print(_img.size)

分别给出:

<class 'PIL.Image.Image'> None RGB (512, 512)

【问题讨论】:

  • 可能是关于intfloat 的一些问题,这样>= 1 的每个像素值都会被裁剪为白色?提供有关您如何阅读图像的详细信息(代码)。
  • 添加了代码。
  • 嗯,下载您的 PNG 文件并复制和粘贴您的代码,会给出正确的输出。你能发布你正在使用的 keras 和 matplotlib 的版本吗?

标签: python matplotlib imshow


【解决方案1】:

在显示您的图像之前尝试这样做:

tf.keras.preprocessing.image.img_to_array(_img, data_format=None,dtype=None)

【讨论】:

  • 我建议你这样做是因为 keras 命令会返回一个 PIL 图像。通过执行上面的命令,它应该已经将其转换为一个 numpy 数组,然后 plt.imshow() 就可以工作了。无论如何,你可以试试 _img.show() 吗?
猜你喜欢
  • 1970-01-01
  • 2017-05-07
  • 2019-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多