X-Git-Url: http://47.100.26.94:8080/?a=blobdiff_plain;f=src%2FMultiTracker.h;h=0fd1d3a8b28d7debf012b6aef8d95d76324b5a2e;hb=2c38aedb2051562fc83dd20037e0f5271355b591;hp=5fc13f99e6e60e22fe4cb1ed5b497bf83e83e87d;hpb=5675c1a74ffcb95725eb11463e51cfebbc88a15e;p=trackerpp.git diff --git a/src/MultiTracker.h b/src/MultiTracker.h index 5fc13f9..0fd1d3a 100644 --- a/src/MultiTracker.h +++ b/src/MultiTracker.h @@ -2,26 +2,32 @@ #define _MULTI_TRACKER_H_ #include "Tracker.h" +#include "Detector.h" #include "Metrics.h" +#include "SharedPtr.h" +#include namespace suanzi { -class MultiTracker -{ -public: - MultiTracker(Metrics* m); - virtual ~MultiTracker(); - void addTracker(Tracker *t); - void removeTracker(Tracker *t); - Tracker* createTracker(int id = 0); - void update(); - - -private: - Metrics* metrics; - std::set trackers; - int max_id = 0; -}; + 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 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); + }; }