【问题标题】:PIL.Image.open only shows two colors while opening a PNG FilePIL.Image.open 在打开 PNG 文件时仅显示两种颜色
【发布时间】:2020-10-14 13:56:07
【问题描述】:

我正在尝试使用 PIL 打开图像 (.png)。但是,它只显示两种颜色的图像。

原始图像(即 3.24 MB)。由于系统只允许我们上传小于 2MB 的文件,所以我减小了大小:

当我运行 image = Image.open('path/image') 时,它给出了这个:

当我运行相同但使用转换时,image = Image.open('path/image').convert('L') 我明白了:

这是我绘制图像的方式:

fig,ax = plt.subplots()
ax.imshow(image)
ax.grid(False)

我已经尝试了几十张图片。不用找了。我强烈猜测是图像通道引起的问题。函数以某种方式将 3 通道读取为单通道或相反。任何想法如何解决???


编辑:所以我更接近我想要的结果。我首先将 iamge 转换为数组。但这仍然不够。

代码如下:

image = Image.open(df['Path'][0])
image = np.asarray(image)
plt.imshow(image)

【问题讨论】:

  • 你是如何绘制图像的? image.show()?
  • 已编辑和添加。
  • 看这里...stackoverflow.com/a/52307690/2836621 并尝试ax.imshow( ... cmap='gray')
  • 已经试过了。它给出了完全相同的结果。
  • np.histogram(image.getdata()) 长什么样子?

标签: python python-imaging-library rgb


【解决方案1】:

终于解决了。将图像转换为数组并通过 cmap 读取值。这是完整的代码和结果:

image = Image.open('/path/image')
image = np.asarray(image)
plt.imshow(np.abs(image), cmap = 'gray')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多