在demo 代码的 bytetrack 模块 有涉及 ,可以作为参考
cv::Mat frame_to_draw;
cv::bmcv::toMAT(&batch_imgs[i], frame_to_draw);
for (auto bbox : output_stracks)
{
draw_opencv(bbox.track_id, bbox.class_id, bbox.score, bbox.tlwh[0],
bbox.tlwh[1], bbox.tlwh[0] + bbox.tlwh[2],
bbox.tlwh[1] + bbox.tlwh[3], frame_to_draw);
}
bm_image frame_drawed;
cv::bmcv::toBMI(frame_to_draw, &frame_drawed);
if (frame_drawed.image_format != FORMAT_YUV420P)
{
bm_image frame;
bm_image_create(h, frame_drawed.height, frame_drawed.width,
FORMAT_YUV420P, frame_drawed.data_type, &frame);
bmcv_image_storage_convert(h, 1, &frame_drawed, &frame);
bm_image_destroy(frame_drawed);
frame_drawed = frame;
}
string img_file = save_image_path + to_string(id) + ".jpg";
void *jpeg_data = NULL;
size_t out_size = 0;
int ret =
bmcv_image_jpeg_enc(h, 1, &frame_drawed, &jpeg_data, &out_size);
bm_image_destroy(frame_drawed);