小编Thu*_*ion的帖子

如何将cv :: Mat转换为ros中的sensor_msgs?

我试图将cv :: Mat转换为sensor_msgs,以便我可以在ROS中发布它.

我的代码是这样的:

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();
        }
Run Code Online (Sandbox Code Playgroud)

我尝试了两种可能的解决方案:

[1]使用cv_bridge,CvImagePtr和toImageMsg(),但是CvImagePtr报告

断言(px!0)错误,我猜这意味着我必须初始化CvImagePtr.

但我不知道如何初始化它;

[2]使用fillImage和sensor_msgs :: Image,

但fillImage的第六个参数必须是void*而不是Mat*


希望有人能帮助我!

有没有一种有效的方法将cv :: Mat(或IplImage)转换为sensor_msgs?

THX提前!

c++ opencv pointers type-conversion ros

4
推荐指数
1
解决办法
8333
查看次数

标签 统计

c++ ×1

opencv ×1

pointers ×1

ros ×1

type-conversion ×1