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中的订阅器。