我正在使用OpenCV 3.0和python 2.7.6以及ROS Indigo。我安装了它,并试图做一些ORB对象检测。具有讽刺意味的是,所有实际的检测代码似乎都没有问题。不起作用的代码是imshow。它给出了这个错误:
OpenCV错误:未指定错误(该功能未实现。使用Windows,GTK + 2.x或Carbon支持重建库。如果您使用的是Ubuntu或Debian,请安装libgtk2.0-dev和pkg-config,然后重新安装-cun cmake或configure script)在cvShowImage中,文件/tmp/buildd/ros-indigo-opencv3-2.9.6-1trusty-20150512-2345/modules/highgui/src/window.cpp,第534行
在我的谷歌搜索中,我还没有看到这些。有什么帮助吗?
答案 0 :(得分:2)
如消息所示,您需要使用gtk重建库。 进入您的OpenCV文件夹并创建一个名为Release。的新文件夹。
cd ~/OpenCV
mkdir Release
cd Release
现在您需要重建OpenCV。使用以下命令
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_GTK=ON -D WITH_OPENGL=ON ..
请记住在构建时使用WITH_GTK=ON
。在此之后,输入这些命令
make
sudo make install
现在运行你的代码。这应该使它工作。您可以删除旧的构建文件夹。
答案 1 :(得分:1)
完整的过程包括重新编译OpenCV 3并将具有正确选项的新编译库复制到ROS环境。
我在编程Baxter机器人时遇到了同样的问题,需要解决它。
所以需要做以下事情:
下载最新的稳定版http://opencv.org/downloads.html
该信息来自本网站 - > https://sites.google.com/site/rameyarnaud/research/ros/latest-opencv-in-ros 但我会在这里发布信息:
sudo chmod a+rw -R /opt/ros/`rosversion -d`/lib/
mkdir /opt/ros/`rosversion -d`/lib/libopencv_backup
mv /opt/ros/`rosversion -d`/lib/libopencv*.so* /opt/ros/`rosversion -d`/lib/libopencv_backup
cp <OPENCV_BUILD_FOLDER>/lib/libopencv* /opt/ros/`rosversion -d`/lib/
ls -hal /opt/ros/`rosversion -d`/lib/libopencv*
您的ROS环境需要正确设置,否则会返回rosversion。
在此之后,您应该可以使用OpenCV 3并正确显示。