我有一个名为'img'的图片文件名数组。这个变量是这样的。
['../realData/0.jpg', '../realData/1.jpg']
我想做的是在这个数组中迭代,然后用Matplotlib绘制每张图片。这是我的代码。
for i in range(len(img)):
img = mpimg.imread(img[i])
plt.imshow(img)
plt.show()
第一张图片显示得很好 但第二张图片却出现了错误
Traceback (most recent call last):
File "C:/Users/Maximal/Documents/Python/PyCharm/TrafficSignClassification/run/predictRealData.py", line 13, in <module>
model.evaluateRealData(labelNames, imagePath)
File "C:\Users\Maximal\Documents\Python\PyCharm\TrafficSignClassification\model\trafficSignsClassification.py", line 186, in evaluateRealData
self.showImage(srcImg)
File "C:\Users\Maximal\Documents\Python\PyCharm\TrafficSignClassification\model\trafficSignsClassification.py", line 225, in showImage
img = mpimg.imread(img[i])
File "C:\Users\Maximal\AppData\Local\Programs\Python\Python36\lib\site-packages\matplotlib\image.py", line 1436, in imread
return handler(fname)
File "C:\Users\Maximal\AppData\Local\Programs\Python\Python36\lib\site-packages\matplotlib\image.py", line 1390, in read_png
return _png.read_png(*args, **kwargs)
TypeError: Object does not appear to be a 8-bit string path or a Python file-like object
Process finished with exit code 1
我不明白的是,第一张图能正常显示,而第二张图却不能。我使用windows snipping工具采集了两张图片,并将它们保存为jpg文件。在资源管理器中,我可以打开这两张图片就好了。怎么会出现这种情况呢?这些图片在形状、大小等方面应该是相同的。
问题在于变量 img
. 我把我正在迭代的数组分配给第一次迭代的输出帧.所以我不得不把代码从这个:
for i in range(len(img)):
img = mpimg.imread(img[i])
plt.imshow(img)
plt.show()
改成这样
for i in range(len(img)):
image = mpimg.imread(img[i])
plt.imshow(image)
plt.show()
然后它又开始工作了