【发布时间】:2018-01-06 22:28:43
【问题描述】:
我正在尝试用一个很酷的库来做一些人体姿势估计,可以在这里找到:
https://github.com/DeNA/Chainer_Realtime_Multi-Person_Pose_Estimation
我使用 tkagg 后端处理静止图像,通过以下几行设置:
import matplotlib
matplotlib.use('tkagg')
import matplotlib.pyplot as plt
不幸的是,要进行实时网络摄像头跟踪,tkagg 似乎无法正常工作。当我运行代码进行实时网络摄像头跟踪时,出现以下错误:
OpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvShowImage, file /Users/travis/build/skvark/opencv-python/opencv/modules/highgui/src/window.cpp, line 583
这似乎是在告诉我使用 GTK 后端,这是有道理的,因为这是原始 repo 所说的使用。问题是当我像这样将 matplotlib.use 行更改为 GTK 时:
import matplotlib
matplotlib.use('GTK')
import matplotlib.pyplot as plt
这会产生以下跟踪错误:
Traceback(最近一次调用最后一次): 文件“/Users/mark/Downloads/myenv3.5/lib/python3.5/site-packages/matplotlib/backends/backend_gtk.py”,第 14 行,在 导入对象 ImportError: 没有名为“gobject”的模块
在处理上述异常的过程中,又发生了一个异常:
Traceback (most recent call last):
File "camera_pose_demo.py", line 4, in <module>
from pose_detector import PoseDetector, draw_person_pose
File "/Users/mark/Downloads/Chainer_Realtime_Multi-Person_Pose_Estimation-master/pose_detector.py", line 8, in <module>
import matplotlib.pyplot as plt
File "/Users/mark/Downloads/myenv3.5/lib/python3.5/site-packages/matplotlib/pyplot.py", line 116, in <module>
_backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
File "/Users/mark/Downloads/myenv3.5/lib/python3.5/site-packages/matplotlib/backends/__init__.py", line 60, in pylab_setup
[backend_name], 0)
File "/Users/mark/Downloads/myenv3.5/lib/python3.5/site-packages/matplotlib/backends/backend_gtk.py", line 18, in <module>
raise ImportError("Gtk* backend requires pygtk to be installed.")
ImportError: Gtk* backend requires pygtk to be installed.
这显然是说我的程序找不到 GTK 后端。我已经通过 brew 安装了它,但我读过其他人也有这个问题 - 只是没有一个明确的答案。似乎我需要在我的机器上找到 GTK 并明确告诉我的 python 程序/virtualenv 那在哪里,虽然我不知道该怎么做。
【问题讨论】:
标签: python-3.x opencv matplotlib gtk virtualenv