CV_Bridge | Image的ROS数据类型与opencv数据类型之间的转换
Posted gdut-gordon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CV_Bridge | Image的ROS数据类型与opencv数据类型之间的转换相关的知识,希望对你有一定的参考价值。
ros官网的介绍
http://wiki.ros.org/cv_bridge/Tutorials/UsingCvBridgeToConvertBetweenROSImagesAndOpenCVImages
官网存在错误:
深度图的编码方式,官网使用的是mono16,估计是版本更新的问题,该编码方式会报错。
[ERROR] [1525783791.845026210]: Could not convert from ‘16UC1‘ to ‘mono16‘.
纠正代码
namespace enc = sensor_msgs::image_encodings; void depth_Callback(const sensor_msgs::ImageConstPtr& depth_msg) { try { cv::imshow("depth_view", cv_bridge::toCvShare(depth_msg, enc::TYPE_16UC1)->image); cv::waitKey(10); } catch (cv_bridge::Exception& e) { ROS_ERROR("Could not convert from ‘%s‘ to ‘mono16‘.", depth_msg->encoding.c_str()); }
使用 TYPE_16UC1 !!
以上是关于CV_Bridge | Image的ROS数据类型与opencv数据类型之间的转换的主要内容,如果未能解决你的问题,请参考以下文章
ROS cv_bridge ImagePtr 在 C++ 字符串中的转换
AR Drone系列之:使用ROS catkin创建package并使用cv_bridge实现对ar drone摄像头数据的处理