X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=tracker.h;h=9d3e018cfcf8f2fb807884c1ca6edc844155670c;hb=c8a37f33eb29f651fed648a48918390f0da1eefb;hp=d8cb811c40a1d51e4aeb651896684e585f1b0be6;hpb=ea33e3e5dddbe3796d2361910e1e3ed98a19865c;p=mtp.git diff --git a/tracker.h b/tracker.h index d8cb811..9d3e018 100644 --- a/tracker.h +++ b/tracker.h @@ -19,6 +19,10 @@ #ifndef TRACKER_H #define TRACKER_H +#include + +using namespace std; + #include "misc.h" #include "mtp_graph.h" @@ -26,6 +30,7 @@ class Tracker { int _nb_locations, _nb_time_steps; scalar_t **_detection_score; int **_allowed_motion; + int *_entrances, *_exits; MTPGraph *_graph; int *_edge_occupation; @@ -34,17 +39,31 @@ public: Tracker(int nb_time_steps, int nb_locations); ~Tracker(); + // Define the spatial topology + void set_allowed_motion(int from_location, int to_location, int v); + void set_as_entrance(int location, int v); + void set_as_exit(int location, int v); + + // Build or print the graph needed for the tracking per se + void build_graph(); + void print_graph_dot(ostream *os); + + // Define the detection scores void set_detection_score(int time, int location, scalar_t score); + // Compute the optimal set of trajectories + void track(); - // int nb_trajectories(); - // int trajectory_start_time(int k); - // int trajectory_end_time(int k); - // int trajectory_location(int k, int time); + // Read-out of the optimal trajectories + + int nb_trajectories(); + int trajectory_entrance_time(int k); + int trajectory_duration(int k); + int trajectory_location(int k, int time); }; #endif