解决ROS中的cv_brigde和opencv的版本冲突问题

原来的项目使用opencv3.4.0开发,需要更新至opencv4.4.0,于是出现了版本的问题。
在ROS中使用opencv时,发现节点打不开,直接卡死,经过调试后发现问题出在了cv::FileStorage。
创建了一个cv::FileStorage对象fs,由fs读取参数,但是由于读取失败,fs.isOpened=0,造成了core dumped的问题。在输出的报错信息中出现了opencv3.2.0的字样(/build/opencv-L2vuMj/opencv-3.2.0+dfsg/modules/core)
解决方法:
首先尝试在CMakeLists.txt中把OpenCV_DIR,OpenCV_INCLUDE_DIRS,OpenCV_LIB_DIR都set成实际使用的opencv版本的路径,把find_package中的版本改对,但并没有解决问题。
后来经过查询,认为是ROS中的cv_bridge需要调用opencv3.2.0,然而,项目使用的是opencv4.4.0,所以出现了问题。
参考这篇文章的方法修改cv_bridgeConfig.cmake
https://blog.csdn.net/bigdog_1027/article/details/79092263
文中的是在ROS Kinetic下,把原有的opencv3换成了opencv2,本文遇到的情况是在ROS Melodic下,把原有的opencv3.2换成4.4,虽然情况不同但是方法类似,具体来说,修改了如下两处:
在这里插入图片描述

在这里插入图片描述重新编译后,问题得到了解决。
参考:
https://answers.ros.org/question/352756/specify-opencv-version-ros-melodic-ubuntu-1804/
https://www.cnblogs.com/pine-apple/p/14545448.html
https://blog.csdn.net/bigdog_1027/article/details/79092263
https://blog.csdn.net/weixin_40830684/article/details/107568786

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值