任务描述
test_image_publisher.cpp : 从计算机摄像头读取图像并发布图像信息”camera/image”
test_image_subscriber.cpp : 读取publisher发布的图像信息
test_image_publisher.cpp
一. 代码结构分析
- 初始化
ros::init(argc, argv, "image_publisher");
ros::NodeHandle nh;
image_transport::ImageTransport it(nh);
image_transport::Publisher pub = it.advertise("camera/image", 1);
初始化节点,设置发送器.这里要发送一个名叫"camera/image"的消息到公共空间("\"目录)
- 从摄像头读取图像
cv::VideoCapture cap(0);
得到一个摄像头句柄,接下来靠
cap >> frame;
直接得到图片.
3. 发布图像消息到公共空间
pub.publish(msg);
二. 完整代码
#include <ros/ros.h>
#include <image_transport/image_transport.h>
#include <opencv2/highgui/highgui.hpp>
#include <cv_bridge/cv_bridge.h>
#include <sstream>
int main(int argc, char** argv) {
ros::init(argc, argv, "image_publisher");
ros::NodeHandle nh;
image_transport: