-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmy_publisher.cpp
More file actions
38 lines (30 loc) · 1.02 KB
/
my_publisher.cpp
File metadata and controls
38 lines (30 loc) · 1.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <ros/ros.h>
#include <image_transport/image_transport.h>
#include <opencv2/highgui/highgui.hpp>
#include <cv_bridge/cv_bridge.h>
int main(int argc, char **argv)
{
ros::init(argc, argv, "image_publisher");
ros::NodeHandle nh;
image_transport::ImageTransport it(nh);
image_transport::Publisher pub = it.advertise("camera/image", 1);
cv::VideoCapture cap("/home/sahabi/Downloads/Animation.mp4");
cv::Mat imgTmp;
cap.read(imgTmp);
cv::waitKey(30);
while (nh.ok())
{
cv::Mat imgOriginal;
bool bSuccess = cap.read(imgOriginal); // read a new frame from video
if (!bSuccess) //if not success, break loop
{
std::cout << "Cannot read a frame from video stream" << std::endl;
break;
}
sensor_msgs::ImagePtr msg = cv_bridge::CvImage(std_msgs::Header(), "bgr8", imgOriginal).toImageMsg();
ros::Rate loop_rate(5);
pub.publish(msg);
ros::spinOnce();
loop_rate.sleep();
}
}