#include#include #include 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_raw", 1); cv::Mat image = cv::imread("image.jpg", cv::IMREAD_COLOR); sensor_msgs::ImagePtr msg = cv_bridge::CvImage(std_msgs::Header(), "bgr8", image).toImageMsg(); ros::Rate loop_rate(5); while (nh.ok()) { pub.publish(msg); ros::spinOnce(); loop_rate.sleep(); } }
#includeThis example reads an image from file, compresses it using OpenCV's imencode function and publishes it using the image_transport publisher. The compressed transport is used. Package library: `image_transport`#include #include 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_compressed", 1); cv::Mat image = cv::imread("image.jpg", cv::IMREAD_COLOR); sensor_msgs::CompressedImage compressed_image; std::vector image_data; cv::imencode(".jpg", image, image_data); compressed_image.data = image_data; ros::Rate loop_rate(5); while (nh.ok()) { pub.publish(compressed_image); ros::spinOnce(); loop_rate.sleep(); } }