解决ROS的cv_bridge与自己安装的opencv的版本冲突的问题

这篇具有很好参考价值的文章主要介绍了解决ROS的cv_bridge与自己安装的opencv的版本冲突的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

如果用ROS的topic传输图片,需要用到cv_bridge,这是个ros自带的opencv中的库,如果此时项目中引用了自己安装的opencv,自己安装的opencv会与ros自带的opencv中的cv_bridge冲突。编译时弹出warning: libopencv_imgproc.so.407, needed by /usr/local/lib/libopencv_features2d.so.4.7.0, may conflict with libopencv_imgproc.so.4.2。运行后 cv::imshow报Segmentation fault这个错误。

解决方法1:

修改/opt/ros/noetic/share/cv_bridge/cmake文件夹中的cv_bridgeConfig.cmake,ctrl+f 搜索“set(libraries“ 会看到cv_bridge所需要的库,这里面都是 .4.2.0的版本,将发生冲突的库改为自己的版本,比如我的是opencv4.8,就改为 .4.8.0,注意还有前面的路径一起改,4.8.0版本的这些库/usr/local/lib中,安装自己的opencv的时候安装到这里的。修改完后cv::imshow就不会报错了。

参考了这位博主的做法:解决Ubuntu环境下ROS Kinetic中的cv_bridge和自己安装OpenCV 2.4.xx兼容性笔记_ros安装opencv-CSDN博客

 解决方法二(推荐):

下载自己的ros对应版本的cv_bridge,https://github.com/ros-perception/vision_opencv

修改cv_bridge中的cmakelists.txt

find_package(OpenCV 3.4.10 REQUIRED) //改成你安装的opencv的版本

cmake单独编译cv_bridge

mkdir build
cd build
cmake ..
make
sudo make install

在你需要用cv_bridge的项目中的CMakeLists.txt中添加

set(cv_bridge_DIR /usr/local/share/cv_bridge/cmake)  //在find_package前面

 这样就是引用了 引用你自己opencv的cv_bridge。

参考:解决cv_bridge和opencv之间版本匹配问题 - 知乎文章来源地址https://www.toymoban.com/news/detail-773964.html

到了这里,关于解决ROS的cv_bridge与自己安装的opencv的版本冲突的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ubuntu20.04安装opencv 3.2.0以及cv_bridge踩坑记录

    本次安装是在我的双系统下安装的,不同ubuntu版本或者不同硬件平台情况也许会有所不同,仅供参考。 第一步: 我采用的是github官方代码仓库下载安装的方式,下载的是3.2.0版本(其余版本安装过程类似) opencv官方链接 第二步:安装依赖项 值得一提的是,在此处我遇到过

    2024年02月04日
    浏览(58)
  • 【carla】ubuntu20.04 编译carla-ros-bridge 安装过程、报错及其解决方法

    下载后进行catkin_make会报错3个错误 Create a catkin workspace: Clone the ROS Bridge repository and submodules: Set up the ROS environment according to the ROS version you have installed: Install the required ros-dependencies: 安装rosdepc,然后运行: 7.创建虚拟环境 8.安装pip依赖 方法1:在conda环境中安装empy: conda instal

    2024年02月11日
    浏览(59)
  • DM-VIO安装与运行自己数据集(ROS版本)

    进入官方链接下载dm-vio和dm-vio-ros,基本上就是按照readme的操作来: 下载代码: 安装gt-sam: 安装opencv: 安装pangolin: 这里要注意,如果电脑里没有pangolin,是可以编译的,但是不会生成可执行文件,所以这个仍然是必须安装的库,此外,必须是0.6版本。 编译: 编译完成后,

    2024年02月05日
    浏览(38)
  • ROS自带OpenCV和本地OpenCV版本冲突问题解决

    首先catkin_make编译功能包没有任何问题,100%生成目标文件,但是报了警告:库文件libmyslam.so需要的是libopencv_core.so.3.4,可能会与libopencv_core.so.3.2冲突。根据工程经验,警告不用管,直接运行完事。

    2024年02月12日
    浏览(57)
  • 2.ROS机器视觉——ROS图像(imgmsg)与opencv(cv2)对接

    参考: 古月学院和ROS机器人开发实践 目标 :实现ROS系统读取摄像头的图像,ROS读取的图像数据转化为opencv中的图像,opencv对接受的图像进行处理,最后返回给ROS系统可视化输出。 安装opencv库与相关的接口包 由于我用的ROS-Melodic版本,其中roscore只能在python2中执行,而视觉部

    2024年02月16日
    浏览(35)
  • Mac安装opencv后无法导入cv2的解决方法

    前提条件 :以下两个插件安装成功 pip install opencv-python pip install --user opencv-contrib-python 注:直接用pip install opencv-contrib-python如果报错,就加上“–user\\\" 第一步: 设置–添加python解释器 第二步: 安装了Anaconda3,就去该目录中找到python的解释器,点击右上角,Add 为了区分其他解

    2024年02月12日
    浏览(46)
  • OpenCV数据类型及CV_16UC1深度图ros订阅

    最近用到深度图,对其数据类型及显示有些迷惑,记笔记于此:

    2024年02月05日
    浏览(40)
  • ubuntu20.04 安装carla0.9.13预编译版以及carla ros bridge

    因为之前使用Anaconda的python3.7环境下,不论是carla0.9.11还是carla0.9.13都出现启动下面这个ros bridge的launch时会导致carla卡死,且在网上也未搜索到相关解决方案,换用ubuntu18.04安装时在安装ubuntu18.04的过程中出现没有安装类型选项,故想尝试直接在ubuntu20.04的python3.8环境下进行安装

    2024年01月23日
    浏览(62)
  • cv2导入失败原因及安装opencv后仍报错的解决方式

            对于python而言,在引用opencv库的时候需要写为import cv2。其中,cv2是opencv的C++命名空间名称,使用它来表示调用的是C++开发的opencv的接口。如果没有下载opencv库的话,直接导入cv2会报错:ModuleNotFoundError:No module named \\\'cv2\\\'。         直接pip install cv2是不行的,会报错

    2024年02月05日
    浏览(134)
  • 解决python3安装完OpenCV后没有cv2.imshow、cv2.imread等函数的问题

    发现cv2中没有函数可用,此时打开cv2所在的文件夹, 找到 cv2.pyd 文件,复制到所用python环境中的site-packages文件夹中 关闭项目工程文件重新打开,就可以调用cv2中的函数了。

    2024年02月03日
    浏览(83)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包