博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ros代码中添加使用opencv库,cv::Mat和ros image之间的相互转换
阅读量:2383 次
发布时间:2019-05-10

本文共 1417 字,大约阅读时间需要 4 分钟。

ros中很多时候要用到图形处理,这时就需要使用opencv库,本篇主要将怎么在ros现成node上使用opencv的库函数

1.修改编译脚本

第一步:在node所在的CMakefile文件中opencv库查找,例如:

  1. find_package( OpenCV REQUIRED COMPONENTS

  2. core

  3. highgui

  4. imgproc

  5. )

或者直接

find_package( OpenCV REQUIRED )

为的是在编译前到环境变量配置的路径中找到opencv package,如果找不到,那需要查看下LD_LIBRARY_PATH环境变量,或者有没有安装opencv

第二步:在target_link_libraries中增加以来库,例如:

target_link_libraries(xxxxxx ${catkin_LIBRARIES} ${OpenCV_LIBRARIES})

增加目标链接时的依赖库

第三步:在所需使用的cpp文件中增加头文件,例如:

  1. #include <opencv2/core/core.hpp>

  2. #include <opencv2/imgproc/imgproc.hpp>

  3. #include <opencv2/highgui/highgui.hpp>

2.cvMat和ros image data之间的转换

ros中已提供现成的组建cv_bridge,方便大家来使用

第一步:需要在CMakefile中,增加如下:

find_package(catkin REQUIRED nodelet roscpp sensor_msgs cv_bridge)

如果cakin_package里面有内容,例如

[html]

  1. <code class="language-html">catkin_package(  
  2.   INCLUDE_DIRS include  
  3.   LIBRARIES xxxxx  xxxx   xxxxx  
  4.   CATKIN_DEPENDS dynamic_reconfigure image_geometry image_transport nodelet roscpp sensor_msgs  
  5. )</code>  

也需要在最后CATKIN_DEPENDS中添加cv_bridge,改成如下

  1. catkin_package(

  2. INCLUDE_DIRS include

  3. LIBRARIES xxxxx xxxx xxxxx

  4. CATKIN_DEPENDS dynamic_reconfigure image_geometry image_transport nodelet roscpp sensor_msgs cv_bridge

  5. )

第二步:需要在package.xml中添加如下

  1. <build_depend>cv_bridge</build_depend>

  2. <run_depend>cv_bridge</run_depend>

第三步:需要在cpp文件中增加头文件,如下

#include 

就可以使用cv_bridge,使用方法可见链接http://wiki.ros.org/cv_bridge/Tutorials。

http://wiki.ros.org/cv_bridge/Tutorials/UsingCvBridgeToConvertBetweenROSImagesAndOpenCVImages

你可能感兴趣的文章
centos常用命令二
查看>>
通过修改kong属性解决不能获取外网域名的问题
查看>>
Eclipse带命令行参数调试
查看>>
php smtp发送邮件
查看>>
wordpress简代码(短代码、shortcode)
查看>>
yii框架的404、500等异常处理
查看>>
yii框架在layout模式下,模版和layout文件的渲染顺序
查看>>
php5对象复制、clone、浅复制与深复制
查看>>
php设计模式
查看>>
git与github在ubuntu下的使用
查看>>
css pie.htc使用总结
查看>>
python包含中文字符串长度
查看>>
sysbench 0.5 性能测试工具使用手册
查看>>
通过telnet连接查看memcache服务器
查看>>
django不用在数据库中创建新的user表而使用它的后台管理功能
查看>>
php array_unshift()修改数组key
查看>>
mysql性能优化-查询(Query)优化-2
查看>>
MySQL分区表的使用
查看>>
MongoDB 地理位置索引的实现原理
查看>>
MongoDB与MySQL的插入、查询性能测试
查看>>