Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
opencv 3.0 python imshow错误_Python_Opencv_Ros - Fatal编程技术网

opencv 3.0 python imshow错误

opencv 3.0 python imshow错误,python,opencv,ros,Python,Opencv,Ros,我将OpenCV 3.0与python 2.7.6和ROS Indigo一起使用。我通过安装它,并试图做一些天体物体检测。具有讽刺意味的是,所有实际的检测代码似乎都没有问题。不起作用的代码是imshow。它给出了以下错误: OpenCV错误:未指定的错误(该函数未实现。使用Windows、GTK+2.x或Carbon支持重建库。如果您在Ubuntu或Debian上,请安装libgtk2.0-dev和pkg config,然后重新运行cmake或配置脚本)在cvShowImage中,文件/tmp/

我将OpenCV 3.0与python 2.7.6和ROS Indigo一起使用。我通过安装它,并试图做一些天体物体检测。具有讽刺意味的是,所有实际的检测代码似乎都没有问题。不起作用的代码是imshow。它给出了以下错误:

OpenCV错误:未指定的错误(该函数未实现。使用Windows、GTK+2.x或Carbon支持重建库。如果您在Ubuntu或Debian上,请安装libgtk2.0-dev和pkg config,然后重新运行cmake或配置脚本)在cvShowImage中,文件/tmp/buildd/ros-indigo-opencv3-2.9.6-1trusty-20150512-2345/modules/highgui/src/window.cpp,第534行


我在谷歌搜索时没有看到这些。有什么帮助吗?

如消息所述,您需要使用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 ..
在构建时,请记住将
与_GTK=ON一起使用。在此之后,输入这些命令

make
sudo make install

现在运行代码。这应该能让它起作用。您可以删除旧的构建文件夹。

整个过程包括重新编译OpenCV 3,并使用正确的选项将这些新编译的库复制到ROS环境中

我在为巴克斯特机器人编程时遇到了同样的问题,需要解决它

因此,需要做以下工作:

  • 下载最新的稳定版本

    • 在某个地方提取并按照KiranCP的步骤进行。这将需要一些时间编译取决于您的机器
    • 完成后,您需要复制下一步中显示的库
    • 此信息取自此网站-> 但我会在这里发布信息:

      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*
      
      sudo chmod a+rw-R/opt/ros/`rosversion-d`/lib/ mkdir/opt/ros/`rosversion-d`/lib/libopencv\u备份 mv/opt/ros/`rosversion-d`/lib/libopencv*.so*/opt/ros/`rosversion-d`/lib/libopencv\u备份 cp/lib/libopencv*/opt/ros/`rosversion-d`/lib/ ls-hal/opt/ros/`rosversion-d`/lib/libopencv*
您的ROS环境需要正确设置,否则rosversion将返回


在此之后,您应该能够正确使用OpenCV 3和imshow。

这确实意味着,您的cv2.pyd是在没有任何gui支持的情况下构建的。如果需要,您必须重新编译它,可能需要在libgtk2.0-dev libgtk-3-dev之前安装GTK deel库