python用matplotlib显示图片出错

源代码:
import os
from PIL import Image
import matplotlib.pyplot as plt

img = Image.open(os.path.join('', 'Testsample' + '.png'))

plt.figure("Image") # 图像窗口名称
plt.imshow(img)
plt.axis('on') # 关掉坐标轴为 off
plt.title('image') # 图像题目
plt.show()

去掉plt.show(),就没有错误

错误提示:
AttributeError: 'numpy.ndarray' object has no attribute 'mask'图片说明

2个回答

这段代码在我的机器上是能正确执行的。

我使用的python的版本是“Python 2.7.14+”,matplotlib版本是“3.0.1”。不知道是不是你的版本是什么?

使用Image.open读出的数据是可以直接使用plt.imshow 显示的。

你可以换一张图片试试。
或者使用下面的代码读图片然后再显示

 from scipy import misc
img = Image.open("image path")
KIIOU
KIIOU 谢谢谢谢!应该是我的图片的问题,我试了换图片和用你说的代码都可以显示其他图片,但是就唯独这张图片不行,这张图片我是用opencv输出的,可能和普通的不一样,我用画图板转换一下就可以显示了。
一年多之前 回复
Boover
Boover 回复KIIOU: plt.imshow需要类似数组的数据,但是你的代码是没有问题的。使用Image.open返回的图片,在我的机器上是能使用plt.imshow正确显示的。
一年多之前 回复
KIIOU
KIIOU 谢谢了!
一年多之前 回复
KIIOU
KIIOU 我刚刚入门不是很懂。。能说说具体哪一段代码或者哪一个方法用了ndarray吗?
一年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!