capture1_node.cpp
#include <ros/ros.h>
#include <opencv2/opencv.hpp>
#include <std_msgs/String.h>
//#include <sensor_msgs/image_encodings.h>
#include <image_transport/image_transport.h>
#include <cv_bridge/cv_bridge.h>
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
ros::init(argc, argv, "capture1_node");
ros::NodeHandle nh; // 声明节点句柄
// ros::Publisher chatter_pub = nh.advertise<std_msgs::String>("image1", 1000);
image_transport::ImageTransport it(nh);
// 告诉节点管理器(roscore)我们要在camera1/image1话题上发布图像,
// 这里第一个参数是话题的名称,第二个是缓冲区的大小(即消息队列的长度,在发布图像消息时消息队列的长度只能是1)
image_transport::Publisher pub = it.advertise("camera1/image1", 1);
ros::Rate loop_rate(1000);
VideoCapture vcap1;
Mat image1;
const string videoStreamAddress1 = "rtsp://admin:#include <ros/ros.h>