ROS:OpenCV的常用头文件解释

本文详细介绍了在ROS中使用cv_bridge进行图像格式转换的方法,包括关键的toCvCopy和toCvShare函数,以及使用image_transport高效传输图像的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.#include<cv_bridge/cv_bridge.h>

#include<cv_bridge/cv_bridge.h>
cv_bridge类:这个类中提供的API主要功能是将图像从sensor_msgs/Image类型转化成cv::Mat类型。

API:

cv_bidge::CvImage类:

cv_bridge中提供的数据结构,里面包括OpenCV中的cv::Mat类型的图像信息,图像编码方式,ROS头文件等等。要得到cv::Mat类型的 图像,只需要定义一个对象然后给出对象中的成员object.image即可,或者指针CvImagePtr,ptr->image。

cv_bridge::toCvCopy()方法:

参数是ROS下的sensor_msgs/ImageConstPtr,和图像压缩类型(例如:sensor_msgs::image_encodings::RGB8)。其功能是实 现复制图像信息这样,得到副本,这样我们可以从副本的CvImage中提取cv::Mat类型的图像进行处理。核心!

cv_bridge::toCvShare()方法:

参数同上,但是这个函数只是共享指针地址。ROS是不予许直接对图像格式的消息进行操作的。

2.#include<image_transport/image_transport.h>

image_transport类:图像传输类,其功能和ROS中的Publisher和Subscriber差不多,但是不同的是这个类在发布和订阅图片消息的同时还附带这摄像头的信息。相比较之下, 在ROS中传送图片信息,使用image_transport类要高效的多。同时,这个类可以以不同的图像压缩形式传输图像例如JPG/PNG等等,也可以添加插件定义传输数据的压缩模式。

API:

image_transport::ImageTransport类:

这个类成员可以定义某个话题的图像类型的发布器和订阅器(类似ros的句柄)。

image_transport::Publisher类:

这个类定义了image_transport中的发布器。

image_transport::Subsciber类:

这个类定义了image_transport中的订阅器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值