2016-05-04 3 views
1

Я пытаюсь закончить http://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_gui/py_image_display/py_image_display.html#using-matplotlib он работает, но не показывает ничегоMatplotlib работает, но не генерирует график

import numpy as np 
import cv2 
from matplotlib import pyplot as plt 
img = cv2.imread('messi5.jpg',0) 
plt.imshow(img, cmap = 'gray', interpolation = 'bicubic') 
plt.xticks([]), plt.yticks([]) # to hide tick values on X and Y axis 
plt.show() 

(я использую Raspberry Pi и последовал этот учебник, чтобы установить открытое резюме http://www.pyimagesearch.com/2015/10/26/how-to-install-opencv-3-on-raspbian-jessie/ впоследствии я пип установленный matplotlib)

если я заменю plt.show с plt.savefig, это работает, что не так?


после добавления импорта matplotlib; matplotlib.use('TkAgg') и import Tkinter или tkinter я получить

(cv) [email protected]:~/Desktop $ python tst4.py 
Traceback (most recent call last): 
    File "tst4.py", line 5, in <module> 
    from matplotlib import pyplot as plt 
File "/home/pi/.virtualenvs/cv/lib/python3.4/site- packages/matplotlib/pyplot.py", line 114, in <module> 
    _backend_mod, new_figure_manager, draw_if_interactive, _show =  pylab_setup() 
File "/home/pi/.virtualenvs/cv/lib/python3.4/site- packages/matplotlib/backends/__init__.py", line 32, in pylab_setup 
    globals(),locals(),[backend_name],0) 
File "/home/pi/.virtualenvs/cv/lib/python3.4/site- packages/matplotlib/backends/backend_tkagg.py", line 13, in <module> 
    import matplotlib.backends.tkagg as tkagg 
File "/home/pi/.virtualenvs/cv/lib/python3.4/site-  packages/matplotlib/backends/tkagg.py", line 9, in <module> 
    from matplotlib.backends import _tkagg 
ImportError: cannot import name '_tkagg' 
+2

Проверьте свою базу данных. Если вы используете что-либо, кроме «TkAgg», Matplotlib не может открыть интерактивный график. Чтобы изменить исходный код, перед импортом pyplot следует импортировать matplotlib, matploblib.use ('TkAgg') '. –

+0

@Alexander Huszagh' (резюме) пи @ raspberrypi: ~/Desktop $ питон tst2.py Traceback (самый последний вызов последнего): Файл "tst2.py", строка 1, в matplotlib.use ('TkAgg') ** NameError: имя 'matplotlib' не определено ** ' – joe

+0

Извините, это должно быть точка с запятой, а не запятая. В моем комментарии есть опечатка: 'import matplotlib; matplotlib.use ('TkAgg') ' Точка с запятой просто означает новое утверждение, вы можете заменить ее новой строкой. Вам нужно импортировать matplotlib, прежде чем вы обратитесь к нему. –

ответ

1

Я столкнулся с этим вопросом самостоятельно. Проблема связана с тем, что бэкенд matplotlib не настроен должным образом в виртуальной среде. У меня ушло много проб и ошибок, но в первую очередь необходимо установить несколько зависимостей:

$ sudo apt-get install tcl-dev tk-dev python-tk python3-tk

А затем вручную установить Matplotlib из источника, а не с помощью пип:

$ workon your_env_name 
$ pip uninstall matplotlib 
$ git clone https://github.com/matplotlib/matplotlib.git 
$ cd matplotlib 
$ python setup.py install 

Это должно позаботиться о проблеме.

Я подробно расскажу о своем полном опыте и более подробной информации о решении on this page.

+0

благодарит @Adrian Rosebrock, так как отправляю этот вопрос, я переустановил noobs и следил за вашим новым руководством по установке opencv http://www.pyimagesearch.com/2016/04/18/install-guide-raspberry-pi-3-raspbian-jessie -opencv-3/после этого я последовал за вашим ответом, и теперь он работает – joe

+0

Удивительно, я рад слышать, как это сработало! Поздравляем с настройкой вашей системы. –

Смежные вопросы