栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

运行svo 2.0的 vio时遇到opencv冲突的问题

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

运行svo 2.0的 vio时遇到opencv冲突的问题

当我运行如下指令时,遇到了如下问题

指令

cd svo_ws
source ./devel/setup.bash
roslaunch svo_ros euroc_vio_mono.launch
rosbag play MH_01_easy.bag -s 50

运行时遇到的问题

OpenCV Error: Bad argument (Unknown interpolation method) in resize, file /build/opencv-L2vuMj/opencv-3.2.0+dfsg/modules/imgproc/src/imgwarp.cpp, line 3367
terminate called after throwing an instance of 'cv::Exception'
  what():  /build/opencv-L2vuMj/opencv-3.2.0+dfsg/modules/imgproc/src/imgwarp.cpp:3367: error: (-5) Unknown interpolation method in function resize

后来发现在编译时有一个warnning

/usr/bin/ld: warning: libopencv_core.so.3.4, needed by /home/serena/svo_ws/devel/.private/dbow2_catkin/lib/libDBoW2.so, may conflict with libopencv_core.so.3.2
/usr/bin/ld: warning: libopencv_imgcodecs.so.3.2, needed by /home/serena/svo_ws/devel/.private/svo_online_loopclosing/lib/libbow.so, may conflict with libopencv_imgcodecs.so.3.4

然后我根据问题找到了一个解决方案:(25条消息) ROS学习:cv_bridge与opencv版本冲突三种解决方案_Mr.Qin_的博客-CSDN博客_cv_bridge这篇文章中也提到了之所以出现上述问题,是因为ros本身携带的OpenCV与我自己安装的OpenCV发生冲突,因为在我们使用ros处理图像时,会用到cv_bridge库,但是通常情况下cv_bridge使用的是ros中的opencv,然后我们的工程代码使用的是我们自己安装的opencv,此时就容易发生冲突。

解决这种冲突的方式有三种:

1. 不使用cv_bridge,这种方法有些逃避问题的嫌疑,因为很多时候没有cv_bridge,代码是没法工作的,这种方法不好。

2. 更改ros下cv_bridge中使用opencv的设置,让ros中的cv_bridge使用本地安装的opencv,可以按照下面文章中的步骤来设置。Ubuntu18.04 ros-melodic opencv版本冲突问题解决 (icode9.com)

3. 重新编译一个不同名字但是与cv_bridge相同功能的库。修改方法可以按照下面文章中的方法三进行修改。​​​​​(25条消息) ROS学习:cv_bridge与opencv版本冲突三种解决方案_Mr.Qin_的博客-CSDN博客_cv_bridge 下载cv_bridge库时要选择适配自己ros版本的版本,比如我的ros是melodic的,所以你下载时选择melodic 分支进行下载。

 修改文件夹名字时,注意有两处,一处是:vision_opencv-melodic下的cv_bridge修改为cv_bridge_1, 然后是vision_opencv-melodic/cv_bridge_1/include/下的cv_bridge也要修改为cv_bridge_1.

然后是修改引用cv_bridge.h的文件,修改为cv_bridge_1/cv_bridge.h。在svo_ros中需要修改的地方是,svo_ros/package.xml,svo_ros/src/svo_interface.cpp,和visualizer.h.

 整完之后,重新catkin build 进行编译,然后重新运行,通常情况下就没有问题了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/875912.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号