我在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吗?
先谢谢了。 最好的祝福, 乔万。
答案 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_make
或 catkin build
您的工作区和必要的 ros opencv 包将编译并链接到本地 vision_opencv
文件夹。在此之前,您可能需要清理您的工作区。