forked from LabProdam/ContadorDeCiclistas
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathObjectTracker.hpp
42 lines (37 loc) · 1.2 KB
/
ObjectTracker.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#ifndef OBJECT_TRACKER_HPP
#define OBJECT_TRACKER_HPP
#include <opencv2/opencv.hpp>
#include "TrackedObject.hpp"
#include "ObjectCounter.hpp"
#include "ObjectLocator.hpp"
#include "PointTracker.hpp"
class ObjectTracker {
private:
RectangleTracker *old_tracker = nullptr;
RectangleTracker *new_tracker = nullptr;
ObjectLocator *object_locator = nullptr;
ObjectCounter *object_counter = nullptr;
unsigned int distance_threshold;
unsigned int image_counter = 0;
public:
ObjectTracker(unsigned int distanceThreshold, double contour_threshold,
cv::Rect interest_area);
void IterateTracker(cv::Mat &frame, cv::Mat &fore);
void SetInterestArea(cv::Rect interest_area);
void PrintTotal(cv::Mat &frame);
void PrintLeftPartial(cv::Mat &frame, cv::Point pt);
void PrintRightPartial(cv::Mat &frame, cv::Point pt);
unsigned int GetTotal();
unsigned int GetRightPartial();
unsigned int GetLeftPartial();
void ZeroCounters();
private:
void CreateNewTracker();
void AddRectanglesToTracker(cv::Mat &frame, cv::Mat &fore);
void AddDate(cv::Mat &frame);
void PersistImage(cv::Mat &frame);
void AccountNewObjects(cv::Mat &frame);
void RenewTrackers();
void PrintCounters(cv::Mat &frame);
};
#endif