gpt4 book ai didi

opencv - 为什么 cv_bridge 在 ROS Melodic 中使用 OpenCV 3.2?

转载 作者:行者123 更新时间:2023-12-02 17:30:26 26 4
gpt4 key购买 nike

我在 Ubuntu 18 中安装了 OpenCV 3.4。我还根据网站说明安装了 ROS Melodic。但是,我不断收到需要 libopencv_core.so.3.2 的错误消息。

我已经将我的 CMakeLists 文件设置为指向 OpenCV 3.4。
但是,我在文件中发现:

/ros/melodic/share/cv_bridge/cmake/cv_bridgeConfig.cmake

在 opencv3.2 中有以下行硬编码:

set(libraries "cv_bridge;/usr/lib/x86_64-linux-gnu/libopencv_core.so.3.2.0;/usr/lib/x86_64-linux-gnu/libopencv_imgproc.so.3.2.0;/usr/lib/x86_64-linux-gnu/libopencv_imgcodecs.so.3.2.0").

我试图将其更改为 3.4,但我无法重建它。

我得到的错误是:
/opt/ros/melodic/lib/image_view/image_view: error while loading shared libraries: libopencv_core.so.3.2: cannot open shared object file: No such file or directory

为什么在 cv_bridge 中硬编码 OpenCV 3.2,我如何使用 OpenCV 3.4 重建它?

更新:
我最终安装了 OpenCV 3.2,它工作正常。

最佳答案

因为opencv开发速度比ROS单个模块快很多。很多 ROS 模块在有人离职后就贬值了。

但这绝不是一天的结束(对于新手来说可能是一天的结束)。您可以使用任何版本的 opencv 核心函数(除了 imshow 类型的函数)直接构建它,其他版本应该执行得很好。

最简单的做法是:在控制台执行 catkin_make 之前尝试执行以下

export CMAKE_PREFIX_PATH=/usr/local:$CMAKE_PREFIX_PATH
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

在执行 find_package(需要 OpenCV 3.X.0)时,这应该优先于您的自定义 OpenCV 安装。然后编译并使用该版本的功能。

好吧,如果您确实必须使用 3.4,那么我认为您必须构建 ros 版本的 opencv 和图像传输以及 cvbridge 到 3.4,如果这是您的目标。

您可以在这里找到链接 https://github.com/ros-gbp/opencv3-release他们提供的最高值似乎是 3.3

enter image description here

关于opencv - 为什么 cv_bridge 在 ROS Melodic 中使用 OpenCV 3.2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56282718/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com