unify the interface with detector
[trackerpp.git] / src / MultiTracker.h
index 28ab685..0fd1d3a 100644 (file)
@@ -2,8 +2,10 @@
 #define _MULTI_TRACKER_H_
 
 #include "Tracker.h"
+#include "Detector.h"
 #include "Metrics.h"
 #include "SharedPtr.h"
+#include <opencv2/opencv.hpp>
 
 namespace suanzi {
 
@@ -14,15 +16,17 @@ namespace suanzi {
     public:
         MultiTracker(MetricsPtr m);
         virtual ~MultiTracker();
-        void addTracker(TrackerPtr t);
-        void removeTracker(TrackerPtr t);
-        TrackerPtr createTracker(int id = 0);
-        void update();
-        
+        void update(unsigned int total, const Detection* d, const cv::Mat& image);
+
     private:
         MetricsPtr metrics;
         std::set<TrackerPtr> trackers;
         int max_id = 0;
+        void addTracker(TrackerPtr t);
+        TrackerPtr createTracker(int id = 0);
+        void removeTracker(TrackerPtr t);
+        void correctTrackers(MetricsPtr m, cv::Mat& image);
+        void initNewTrackers(cv::Mat& iamge);
     };