首页 > 解决方案 > PIL.Image.open 在打开 PNG 文件时仅显示两种颜色

问题描述

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

原始图像(即 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)

标签: pythonpython-imaging-libraryrgb

解决方案


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

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

在此处输入图像描述


推荐阅读