// // Created by Scheaven on 2020/3/23. // #include "tracker_manager.h" #include #include #include #include #include //DetecterManager DM; // 准备人体检测器 TrackerManager::TrackerManager() { } TrackerManager::~TrackerManager() { } //调用其他释放函数 void TrackerManager::release() { DetecterManager::getInstance()->release(); } void TrackerManager::init_load_model() { cout << "loading YOLO model ---------" << endl; DetecterManager::getInstance(); Detector::getInstance(); } // ------------------------------ SDK 代码封装部分 ---------------------------------- // 模型检测 + 编码器 + 追踪 SDK封装 // 综合人脸的方法 void TrackerManager::single_SDK(const int cam_id, const void *img, TResult& t_result) { TImage *frame_img = (TImage*)img; cv::Mat frame(Size(frame_img->width, frame_img->height), CV_8UC3); frame.data = (uchar*)frame_img->data; //注意不能写为:(uchar*)pFrameBGR->data DetecterManager::getInstance()->detecter_main(frame, t_result); #ifdef S_DEBUG draw_SDK_result(cam_id, frame, t_result); //多线程无法调用绘图 #endif SLOG::getInstance()->addLog(0, ":::::::::single_SDK end:::::"); } void TrackerManager::init_target(Target *t){ t->attribute = NULL; t->feature = NULL; t->id = 0; t->rect = TRect{0,0,0,0}; t->confidence = 0; t->attribute_size = 0; t->feature_size = 0; } void TrackerManager::init_target(TestTarget *t){ t->attribute = NULL; t->feature = NULL; t->id = 0; t->rect = TRect{0,0,0,0}; t->confidence = 0; t->attribute_size = 0; t->feature_size = 0; t->faceID = 0; t->faceRect = TRect{0,0,0,0}; }