【发布时间】:2019-02-10 04:14:10
【问题描述】:
我试图通过将 cocoapi 演示脚本复制粘贴到我自己的本地脚本中来重新创建它,而不是在 Jupyter 笔记本上运行它。一切正常,肯定有一个图像可以读取并且可以显示,因为我已经使用 openCV 的 imshow() 函数对其进行了测试(并且图像会弹出)。但是,当我尝试使用 plt.imshow() 和 plt.show() 打开图像时,图像不会出现。
我上网搜索解决方案,他们建议是后端问题?但是,当我运行 matplotlib.get_backend() 时,它返回:'TkAgg'。
我也跑了:sudo apt-get install tcl-dev tk-dev python-tk python3-tk 没有错误也没有问题。
from __future__ import print_function
from pycocotools.coco import COCO
import os, sys, zipfile
import urllib.request
import shutil
import numpy as np
import skimage.io as io
import matplotlib.pyplot as plt
import pylab
pylab.rcParams['figure.figsize'] = (8.0, 10.0)
...
# load and display image
I = io.imread('%s/images/%s/%s'%(dataDir,dataType,img['file_name']))
plt.axis('off')
plt.imshow(I)
plt.show()
版本
* 操作系统:Ubuntu 16.04
* Matplotlib 版本:2.2.3
* Matplotlib 后端 (print(matplotlib.get_backend())): TkAgg
* Python 版本:3.5.2
【问题讨论】:
-
您收到任何消息/警告吗?你能用
plt.savefig('savedImage.png')保存图片吗? -
我意识到为什么我会遇到这个问题。 cocoapi 的源代码将 matplotlib 预设为使用 Agg,因此我无法将其更改为 TkAgg。非常感谢你的建议!!!! :)
-
很高兴您解决了这个问题,也许可以发布一个答案,以防其他人遇到类似问题。
-
好的!谢谢! :)
标签: image matplotlib python-3.5 backend