2

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

find_package(OpenCV 4 REQUIRED )

这是我在 ros 工作区中执行命令时收到的警告: catkin_make :

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

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

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

提前致谢。最好的问候,约万。

4

2 回答 2

2

ROS 附带了一个用于图像相关内容的 opencv。一些 ROS 包,例如 cv_bridge、image_geometry 等,默认使用这个 opencv。这就是您出现分段错误的原因,因为不同的 opencv 版本以不同的格式存储图像。

如果你想在你的节点中使用自定义的 opencv,你必须在你的工作目录中包含这些包并编译它们。例如,您必须在节点的 cmakelist 中包含cv_bridge 源代码

于 2019-11-22T07:41:02.743 回答
0

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

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

于 2021-06-10T09:00:47.640 回答