Ubuntu+ROS+opencv4.3.0 修改cv_bridge配置文件,解决ROS与opencv版本冲突问题

Ubuntu18.04+ROS melodic+opencv4.3.0 修改cv_bridge配置文件,解决ROS使用不同版本opencv的冲突问题

在ros下使用opencv读取图像话题时,在OpenCV图像与ROS图像之间的转换中会使用到cv_bridge。由于自己安装了opencv4.3.0与ros自带的opencv发生冲突而有问题。因此需要解决cv_bridge。
在此特别特别感谢
链接1: https://blog.csdn.net/hongge_smile/article/details/105656702
链接2: https://blog.csdn.net/bigdog_1027/article/details/79092263
两位博主的博客!解决了我的大问题。

修改cv_bridge的配置文件,使得cv_bridge去调用我们自己安装的OpenCV版本,具体方式如下。首先打开终端并进入

首先cv_bridge配置文件所在目录,并用gedit指令打开该配置文件。

$ cd /opt/ros/melodic/share/cv_bridge/cmake/
$ sudo gedit cv_bridgeConfig.cmake

大概在90多行,对如下的内容进行修改。将此处指定的头文件目录改到自己安装的头文件目录下。我的版本是4,3,0。安装在usr/local/include下。所以我的修改后的内容为:

if(NOT "include;/usr/local/include;/usr/local/include/opencv4" STREQUAL " ")
  set(cv_bridge_INCLUDE_DIRS "")
  set(_include_dirs "include;/usr/local/include;/usr/local/include/opencv4;/usr/include")

在这里插入图片描述
之后再将指定库文件也修改为自己安装的opencv库文件,大概在120多行。OpenCV的库文件有很多种,通常都将core、highgui、imgproc等常用的库文件写入到配置文件中,万一遇到要用的函数的库文件没有包含在配置文件中只要手动添加就可以。
我的版本是4.3.0,所以修改内容是:

set(libraries "cv_bridge;/usr/local/lib/libopencv_core.so.4.3.0;/usr/local/lib/libopencv_imgproc.so.4.3.0;/usr/local/lib/libopencv_imgcodecs.so.4.3.0;/usr/local/lib/libopencv_highgui.so.4.3.0")

在这里插入图片描述
修改cv_bridge的配置文件结束后,我们只需要在工程的CMakeLists.txt文件中的find_package加入cv_bridge就能够使用自己安装的OpenCV版本。

find_package(
…
cv_bridge
…
)
  • 2
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值