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,649 times
Last updated: Apr 28 '12
sensor_msgs::CompressedImage subscribe fails to build
Working with cv_bridge and OpenCV correctly
Help needed cv_bridge vision_opencv ros indigo rpi wheezy
cv_bridge installation error: wrong number of template arguments
ImportError: cannot import name CvBridge
Image transfer issue: cv_bridge
Problem with catkin_make cv_bridge
building cv_bridge from source
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!