如何将OpenCV 4与ROS(cv_bridge)链接

时间:2019-11-21 15:37:29

标签: opencv ros opencv4

我在ROS Melodic中使用OpenCV,我现在需要使用cv :: dnn(深层神经网络),它已安装在OpenCV 4中,并按如下所示将其设置为CMakeLists.txt:

find_package(OpenCV 4 REQUIRED )

这是警告,我在ros工作区中执行以下命令时会得到提示: catkin_make

  

/ usr / bin / ld:警告:libopencv_imgcodecs.so.3.2,需要   /opt/ros/melodic/lib/libcv_bridge.so,可能与   libopencv_imgcodecs.so.4.1

我忽略了这一点,但现在无法使用opencv rosrun任何节点。

有人可以帮助我如何在cv_bridge(ROS旋律系统)中设置OpenCV 4吗?

先谢谢了。 最好的祝福, 乔万。

2 个答案:

答案 0 :(得分:0)

ROS附带有一个opencv,用于图像相关的东西。某些ROS软件包,例如cv_bridge,image_geometry等,默认情况下使用此opencv。这是您出现分段错误的原因,因为不同的opencv版本以不同的格式存储图像。

如果要在节点中使用自定义的opencv,则必须在工作目录中包括这些软件包并进行编译。例如,您必须在节点的cmakelist中包含cv_bridge source code

答案 1 :(得分:0)

一个简单的解决方案是从 https://github.com/ros-perception/vision_opencv/releases 下载合适版本的 vision_opencv。然后将内容(包含一些包 cv_bridge image_geometry opencv_tests vision_opencv)提取到 catkin 工作区中 vision_opencv 文件夹中名为 src 的文件夹中.

现在 catkin_makecatkin build 您的工作区和必要的 ros opencv 包将编译并链接到本地​​ vision_opencv 文件夹。在此之前,您可能需要清理您的工作区。