说明
将ROS图像话题转为OpenCV图像格式处理后再转为ROS图像话题发布,主要通过cv_bridge的toImageMsg()和toCvCopy()函数(C++版)。
关键函数
CvImagePtr toCvCopy(const sensor_msgs::ImageConstPtr& source,
const std::string& encoding = std::string());
CvImagePtr toCvCopy(const sensor_msgs::Image& source,
const std::string& encoding = std::string());
class CvImage
{
sensor_msgs::ImagePtr toImageMsg() const;
// Overload mainly intended for aggregate messages that contain
// a sensor_msgs::Image as a member.
void toImageMsg(sensor_msgs::Image& ros_image) const;
};
代码
#include <ros/ros.h>
#include <image_transport/image_transport.h>
#include <cv_bridge/cv_bridge.h>
#include <sensor_msgs/image_encodings.h>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>

该文介绍了一个C++程序,它订阅ROS的图像话题,使用cv_bridge库将图像转换为OpenCV格式进行处理(例如画圆),然后将处理后的图像转换回ROS的Image消息并发布出去。主要涉及cv_bridge的toCvCopy()和toImageMsg()函数。
最低0.47元/天 解锁文章
1119

被折叠的 条评论
为什么被折叠?



