Mac环境下OpenCV无法适配GTK后端的问题求助
解决Chainer实时人体姿态估计的GTK后端与摄像头显示问题
我来帮你搞定这个问题——你遇到的核心矛盾是Python3环境下GTK后端的依赖包和Python2不一样,再加上虚拟环境没关联到brew安装的系统库,导致matplotlib和OpenCV都找不到GTK支持。下面是一步步的解决流程:
1. 替换Python2的pygtk为Python3兼容的pygobject
首先,pygtk只支持Python2,Python3里对应的GTK绑定是pygobject。先激活你的虚拟环境,然后安装它:
# 激活虚拟环境 source /Users/mark/Downloads/myenv3.5/bin/activate # 直接安装pygobject pip install pygobject
如果安装时提示找不到GTK库的配置文件,说明虚拟环境没读到brew安装的GTK路径,指定PKG_CONFIG_PATH再安装:
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig pip install pygobject
(brew默认把GTK的配置文件放在/usr/local/lib/pkgconfig下)
2. 修正matplotlib的后端设置
把原来的matplotlib.use('GTK')改成Python3支持的GTK3后端:
import matplotlib # 用GTK3Agg后端,对应pygobject matplotlib.use('GTK3Agg') import matplotlib.pyplot as plt
GTK这个后端名是给Python2的pygtk用的,Python3下必须用GTK3Agg或者GTK3Cairo才能正常工作。
3. 确保OpenCV有GTK支持
之前的OpenCV错误提示“未实现cvShowImage”,说明你用pip装的opencv-python默认没包含GTK编译选项。咱们换成brew安装的带GTK支持的OpenCV,再关联到虚拟环境:
# 先卸载pip版本的opencv pip uninstall -y opencv-python # 用brew安装带GTK支持的OpenCV brew install opencv --with-gtk # 把brew的OpenCV链接到虚拟环境的site-packages ln -s /usr/local/lib/python3.5/site-packages/cv2 /Users/mark/Downloads/myenv3.5/lib/python3.5/site-packages/cv2
注意检查brew安装的OpenCV路径,如果你是Python3.5,路径应该是/usr/local/lib/python3.5/site-packages,如果版本不对就调整一下。
4. 测试运行
做完上面三步后,重新运行你的camera_pose_demo.py,应该就能正常弹出实时姿态追踪的窗口了。
内容的提问来源于stack exchange,提问作者sometimesiwritecode
相关产品推荐
相关产品推荐

