X-Git-Url: http://47.100.26.94:8080/?a=blobdiff_plain;f=include%2FTracker.h;h=7bfcfb0c0a06b99edbd65224b6c240f913368c7b;hb=97b147e9106cb549dd7dd62829b9d29b326738c7;hp=490201abcb3ef88f20d0ae3237e63f2a6f7850aa;hpb=79009fa0674d90e03b7a7bd958f7ee1e20d9b194;p=trackerpp.git diff --git a/include/Tracker.h b/include/Tracker.h index 490201a..7bfcfb0 100644 --- a/include/Tracker.h +++ b/include/Tracker.h @@ -4,11 +4,14 @@ #include #include #include -#include "Metrics.h" #include "SharedPtr.h" +#include "MultiTracker.h" +#include "Detector.h" namespace suanzi { + TK_DECLARE_PTR(Tracker); + TK_DECLARE_PTR(Patch); typedef enum { Fire = -1, @@ -17,37 +20,27 @@ namespace suanzi { Delete } TrackerStatus; - TK_DECLARE_PTR(Tracker); -// TK_DECLARE_PTR(KalmanFilter); class Tracker { public: - Tracker(int id); + Tracker(const cv::Mat& image, const Detection& d, int id = 0); virtual ~Tracker(); void updateState(const cv::Mat& image); - void addPatch(Patch* p); - TrackerStatus status; + void addPatch(PatchPtr p); + void correct(const cv::Mat& image, const Detection& d); + void predict(); + std::vector patches; + Detection detection; + TrackerStatus status = TrackerStatus::Fire; + static constexpr int MaxPatch = 5; private: - TrackerStatus preStatus; + TrackerStatus preStatus = TrackerStatus::Fire; int id; - int age; - int last_active; - std::vector patches; - cv::KalmanFilter kf = {4,2}; + int age = 1; + int last_active = 1; + cv::KalmanFilter KF = {4,2}; }; - -// class KalmanFilter -// { -// public: -// KalmanFilter(); -// ~KalmanFilter(); -// private: -// cv::KalmanFilter -// -// }; - - } #endif /* _TRACKER_H_ */