1. 程式人生 > >CV_Bridge | Image的ROS數據類型與opencv數據類型之間的轉換

CV_Bridge | Image的ROS數據類型與opencv數據類型之間的轉換

pen als HA idg waitkey .com err 技術 esp

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數據類型之間的轉換