一、摘要
ROS 以自己的 sensor_msgs/Image 消息格式传递图像,但许多用户希望将图像与 OpenCV 结合使用。 CvBridge 是一个 ROS 库,提供 ROS 和 OpenCV 之间的接口。 CvBridge 可以在 vision_opencv 堆栈中的 cv_bridge 包中找到。

二、干货
需要的头文件
#include "ros/ros.h"
#include <sensor_msgs/Image.h>
#include <cv_bridge/cv_bridge.h>
#include "opencv2/opencv.hpp"
A)cv::Mat 转 sensor_msgs::Image
cv::Mat image;
sensor_msgs::ImagePtr msg = cv_bridge::CvImage(std_msgs::Header(), "bgr8", image).toImageMsg();
B)sensor_msgs::Image 转 cv::Mat
cv_bridge::CvImagePtr cv_ptr = cv_bridge::toCvCopy(msg, sensor_msgs::image_encodings::TYPE_8UC3);
cv::Mat img = cv_ptr->image;
三、一个小Demo
#include <ros/ros.h>
#include <image_transport/image_transport.h>
#include <cv_bridge/cv_brid

本文详细介绍如何使用CvBridge库在ROS中实现传感器图像与OpenCV的双向转换,包括cv::Mat转sensor_msgs::Image和反之的操作,并提供了一个简单的图像处理Demo。
最低0.47元/天 解锁文章
3640

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



