Subversion Repositories Code-Repo

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
287 Kevin 1
#pragma once
2
 
3
#include "GlobalDefines.h"
4
 
5
// Distance before two points are considered separate objects
6
#define OBJECT_DISTANCE_THRESHOLD 20
7
// Length of the history to store
8
#define HISTORY_DEPTH 10
9
 
10
class KalmanFilter;
11
 
12
typedef struct {
13
	int ID;
14
	cv::Point2f last_known_pt;
15
	cv::Point2f predicted_pt;
16
	float velocity;
17
	float angle;
18
	KalmanFilter *filter;
19
	bool valid;
20
	std::list<cv::Point2f> history;
21
	cv::Point2f historyAvg;
22
} MOVING_OBJECT;
23
 
24
class MovingPointTracker {
25
public:
26
	MovingPointTracker();
27
	~MovingPointTracker();
28
 
29
	std::vector<MOVING_OBJECT> update(std::vector<cv::Point2f>);
30
 
31
private:
32
	float pointDistance(cv::Point2f &, cv::Point2f &);
33
 
34
	int nextID;
35
	int active_objects;
36
	std::vector<MOVING_OBJECT> objects;
37
};
38