接收sensor_msgs :: Image作为ros消息中的数据成员

时间:2015-12-03 16:54:21

标签: c++ ros

我正在尝试接收包含sensor_msgs :: Image作为数据成员的数据结构,如我在frame.msg中声明的那样

std_msgs/Header header
sensor_msgs/Image color
geometry_msgs/Vector3 translation

但是下面的回调函数给出了编译错误 "没有匹配函数来调用'toCvShare(const _color_type&,const char [5])"

void frameCallback( frame_info::frameConstPtr& msg)
{

    cv::imshow("UserInterface", cv_bridge::toCvShare(msg->color, "bgr8")->image);
    cv::waitKey(1);
}

可能是什么问题?

1 个答案:

答案 0 :(得分:1)

根据documentationtoCvShare需要msg的两种变体

  

拥有sensor_msgs :: Image

的对象的shared_ptr

one

  

到sensor_msgs :: Image消息的shared_ptr

你既不提供也不提供其他人。

在你的情况下,第一个选项应该有效,它希望图像作为第一个参数,而拥有图像的对象的shared_ptr(cv_bridge::toCvShare(msg->color, msg, "bgr8") )作为第二个参数:

result