X-Git-Url: http://47.100.26.94:8080/?a=blobdiff_plain;f=include%2FTracker.h;h=88d041a3f94812753d450e1e9c69c547c0f0a942;hb=70532232dd98f31467eff7baaaff6e68f803bb45;hp=bdf45f049f80ef177ece38023da3a751f6c47c8f;hpb=3ff9a5ad691b8dca9d91f8e9786a8d08d31b70fa;p=trackerpp.git diff --git a/include/Tracker.h b/include/Tracker.h index bdf45f0..88d041a 100644 --- a/include/Tracker.h +++ b/include/Tracker.h @@ -6,9 +6,13 @@ #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 +21,27 @@ namespace suanzi { Delete } TrackerStatus; - TK_DECLARE_PTR(Tracker); -// TK_DECLARE_PTR(KalmanFilter); class Tracker { public: - Tracker(const cv::Mat& image, int id = 0); + 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_ */