3
我想將一個cv :: Mat轉換爲一個sensor_msgs,以便我可以在ROS中發佈這個。如何將cv :: Mat轉換爲ros中的sensor_msgs?
我的代碼僅僅是這樣的:
while(ros::ok())
{
capture >> frame;
cv::imshow("Preview" , frame);
cv::waitKey(1);
//sensor_msgs::Image img_;
//fillImage(img_ , "rgb8" , frame.rows , frame.cols , 3 * frame.cols , frame);
//img_header.stamp = ros::Time::now();
//cv_bridge::CvImagePtr cv_ptr;
//cv_ptr->image = frame;
//image_pub_.publish(img_);
ros::spinOnce();
}
我已經嘗試了兩種可能的解決方案:
[1]使用cv_bridge,CvImagePtr和toImageMsg(),但CvImagePtr報告
斷言(px!0)錯誤,我猜這意味着我必須初始化CvImagePtr。
但我不知道如何初始化它;
[2]使用fillImage和sensor_msgs ::圖片,
但fillImage的第六個參數必須是*代替墊*
希望有人可以幫助我一個空白!
是否有一種將cv :: Mat(或IplImage)轉換爲sensor_msgs的有效方法?
THX提前!
看看這裏:HTTP:/ /wiki.ros.org/cv_bridge/Tutorials/UsingCvBridgeToConvertBetweenROSImagesAndOpenCVImages (和這裏:http://answers.ros.org/question/9765/how-to-convert-cvmat-to-sensor_msgsimageptr/) – alextoind 2014-11-23 10:29:31
thx亞歷克斯,第二個鏈接幫助很多! – 2014-11-24 03:38:59