9eb3139c2b59132173f408424113dfbe43cdfe22
[trackerpp.git] / include / Tracker.h
1 #ifndef _TRACKER_H_
2 #define _TRACKER_H_
3
4 #include <opencv2/opencv.hpp>
5 #include <string>
6 #include <vector>
7 #include "Metrics.h"
8 #include "SharedPtr.h"
9 #include "MultiTracker.h"
10
11 namespace suanzi {
12
13     TK_DECLARE_PTR(Tracker);
14     TK_DECLARE_PTR(Patch);
15     typedef enum 
16     {
17         Fire = -1,
18         Active = 2,
19         Lost,
20         Delete
21     } TrackerStatus;
22
23     class Tracker
24     {
25     public:
26         Tracker(const cv::Mat& image, int id = 0);
27         virtual ~Tracker();
28         void updateState(const cv::Mat& image);
29         void addPatch(PatchPtr p);
30         TrackerStatus status;
31         std::vector<PatchPtr> patches;
32
33     private:
34         TrackerStatus preStatus;
35         int id;
36         int age;
37         int last_active;
38         cv::KalmanFilter kf = {4,2};
39     };
40
41
42 }
43
44 #endif /* _TRACKER_H_ */