如何解决将 Ros 消息的动态大小保存在数组中
我使用 Ros-Yolo 神经网络进行图像识别。我想将通过 Ros-Yolo 神经网络接收到的边界框存储在一个数组中。数组的每个位置都应该是下面的结构体。
struct rectangle_Box {
long x_max;
long y_max;
long x_min;
long y_min;
};
由于接收到的边界框的数量会不断变化,我需要一个动态数组。 我现在的问题是哪种程序更明智。
- 创建上述结构类型的动态数组是否更有用,该数组会根据每条新收到的消息调整其大小。例如使用 malloc() 函数。
- 或者创建一个我定义的数组足够大以存储足够的边界框是否更有用。例如:std::array
bounding_Box_in_pixel;
但我需要能够全局访问存储的边界框。
这是我接收边界框数据的回调
void callback_baunding_Box (const darknet_ros_msgs::msg::BoundingBoxes::SharedPtr bounding_Boxes_msgs)
{
}
struct rectangle_Box {
long x_max;
long y_max;
long x_min;
long y_min;
};
std::array <rectangle_Box,1024> bounding_Boxes_in_pixel;
void callback_baunding_Box (const darknet_ros_msgs::msg::BoundingBoxes::SharedPtr bounding_Boxes_msgs)
{
for (unsigned long i = 0; i < bounding_Boxes_msgs->bounding_Boxes.size(); i++)
{
bounding_Boxes_in_pixel.at(i).x_max = bounding_Boxes_msgs->bounding_Boxes.at(i).xmax;
bounding_Boxes_in_pixel.at(i).y_max = bounding_Boxes_msgs->bounding_Boxes.at(i).ymax;
bounding_Boxes_in_pixel.at(i).x_min = bounding_Boxes_msgs->bounding_Boxes.at(i).xmin;
bounding_Boxes_in_pixel.at(i).y_min = bounding_Boxes_msgs->bounding_Boxes.at(i).ymin;
}
}
提前感谢您的帮助
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。