Add Sconscript for unit test
[trackerpp.git] / include / MultiTracker.h
diff --git a/include/MultiTracker.h b/include/MultiTracker.h
new file mode 100644 (file)
index 0000000..0fd1d3a
--- /dev/null
@@ -0,0 +1,35 @@
+#ifndef _MULTI_TRACKER_H_
+#define _MULTI_TRACKER_H_
+
+#include "Tracker.h"
+#include "Detector.h"
+#include "Metrics.h"
+#include "SharedPtr.h"
+#include <opencv2/opencv.hpp>
+
+namespace suanzi {
+
+    TK_DECLARE_PTR(MultiTracker);
+
+    class MultiTracker 
+    {
+    public:
+        MultiTracker(MetricsPtr m);
+        virtual ~MultiTracker();
+        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);
+    };
+
+
+}
+
+#endif /* _MULTI_TRACKER_H_ */