// // Created by Scheaven on 2020/3/23. // #ifndef INC_01_CPP_SORT_TRACKER_MANAGER_H #define INC_01_CPP_SORT_TRACKER_MANAGER_H #include "detecter_manager.h" #include "../encoder_tools/FeatureEncoder.h" #include "../tracker_tools/tracker.h" #include "../config.h" #include "../utils/result_util.h" #include "../utils/config_util.h" #include "../utils/time_util.h" using namespace std; using namespace cv; class TrackerManager{ public: std::vector> CAMERAS_VCT; std::vector DETECTION_VCT; std::vector boxes; int cam_id; //指定待追踪摄像机编号 Mat frame; private: void single_draw(int cam_id, cv::Mat img, FRAME_RESULT& result_vec); void switch_SDK_TResult(int cam_id, cv::Mat img, DETECTIONS detections, TResult *t_result); void sub_thread_tracking(int cam_id, cv::Mat frame, FRAME_RESULT result_vec, DETECTIONS detections); std::vector deal_features(std::vector boxes, std::vector > feats); void single_tracker(int cam_id, DETECTIONS& detections); static void init_target(Target *t); public: TrackerManager(); ~TrackerManager(); void release(); void init_load_model(); bool add_cam(int cam_id); void single_detect_tracking(int cam_id,cv::Mat frame,FRAME_RESULT result_vec); void single_SDK(const int cam_id, const void *frame,TResult *t_result); void mul_detect_tracking(std::vector cam_ids, std::vector frame_vec, std::vector& results_vec); // 其他测试功能接口(测试使用) std::vector en_features(string in_path); std::vector read_tracker(string in_path); Mat h_tracker(int cam_id, Mat frame, DETECTIONS detections); }; #endif //INC_01_CPP_SORT_TRACKER_MANAGER_H