How to convert an an opencv image using cvBridge??
How do I convert an image I have opened through opencv into sensor_msgs/image??
ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange |
How do I convert an image I have opened through opencv into sensor_msgs/image??
I recommend the cv_bridge tutorials.
Here is a snippet of code I have used to do this and the full code is here. It is a package that also uses opencv to grab images and publish them. Some of the variables are:
image_transport::ImageTransport transport;
image_transport::CameraPublisher image_pub;
camera_info_manager::CameraInfoManager info_mgr;
And the code:
// if subscribers, pub images
if(image_pub.getNumSubscribers() > 0) {
ros::Time time = ros::Time::now();
// convert OpenCV image to ROS message
cv_bridge::CvImage cvi;
cvi.header.stamp = time;
cvi.header.frame_id = "image";
cvi.encoding = "bgr8";
cvi.image = cv_image;
// get camera parameters
sensor_msgs::CameraInfo info = info_mgr.getCameraInfo();
info.header.stamp = cvi.header.stamp;
info.header.frame_id = cvi.header.frame_id; // whatever it is called
info.width = cv_image.cols;
info.height = cv_image.rows;
sensor_msgs::Image im;
cvi.toImageMsg(im);
image_pub.publish(im,info);
}
Asked: 2012-04-28 05:12:45 -0500
Seen: 4,645 times
Last updated: Apr 28 '12
How to create a .bag from processed images using cv_bridge?
Using external opencv version - kinetic
Could NOT find Boost (missing: python3) (found version "1.76.0") Windows 10
Building cv_bridge with catkin fails
How to store the depth data from kinect(/camera/depth_registrered/image_raw) as gray scale image?
Receive CompressedImage and republish as Image [closed]
cv_bridge with ar_track_alvar [closed]
Getting distance with camera/depth/image_raw
Problem integrating ros with opencv to work with rgb camera output in ros.
If either of these answers answered your question, please mark one as "correct" so this questions gets closed out ... thanks!