【问题标题】:Can't get opencv working with a gtk backend on my mac无法让 opencv 在我的 Mac 上使用 gtk 后端
【发布时间】: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


    【解决方案1】:

    您需要安装PyGTK(GTK 的python 包装器),而这又需要pygobject(GObject 的python 包装器)。

    PyGTK 似乎相当陈旧(2011 年),我不确定它是否适用于 Python 3。

    【讨论】:

    • 所以我需要安装 pygtk 和 pygobject,然后它应该可以工作,前提是 pyGTK 与 python 3 兼容?
    • 我想是的。可能会有其他需要的库——一个一个安装。
    猜你喜欢
    • 2013-01-28
    • 2021-01-04
    • 1970-01-01
    • 2016-06-10
    • 1970-01-01
    • 1970-01-01
    • 2018-03-12
    • 2017-09-08
    • 1970-01-01
    相关资源
    最近更新 更多