在ros消息中接收sensor_msgs::Image作为数据成员
Receiving sensor_msgs::Image as data member in a ros message
我正在尝试接收包含 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);
}
可能是什么问题?
根据documentation there are two variants of toCvShare
from which one需要
A shared_ptr to an object owning the sensor_msgs::Image
A shared_ptr to a sensor_msgs::Image message
你没有提供其中之一。
在你的情况下,第一个选项应该有效,它期望图像作为第一个参数,shared_ptr 到拥有图像的对象(即 msg
)作为第二个参数:
cv_bridge::toCvShare(msg->color, msg, "bgr8")
我正在尝试接收包含 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);
}
可能是什么问题?
根据documentation there are two variants of toCvShare
from which one需要
A shared_ptr to an object owning the sensor_msgs::Image
A shared_ptr to a sensor_msgs::Image message
你没有提供其中之一。
在你的情况下,第一个选项应该有效,它期望图像作为第一个参数,shared_ptr 到拥有图像的对象(即 msg
)作为第二个参数:
cv_bridge::toCvShare(msg->color, msg, "bgr8")