2 ///////////////////////////////////////////////////////////////////////////
3 // This program is free software: you can redistribute it and/or modify //
4 // it under the terms of the version 3 of the GNU General Public License //
5 // as published by the Free Software Foundation. //
7 // This program is distributed in the hope that it will be useful, but //
8 // WITHOUT ANY WARRANTY; without even the implied warranty of //
9 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU //
10 // General Public License for more details. //
12 // You should have received a copy of the GNU General Public License //
13 // along with this program. If not, see <http://www.gnu.org/licenses/>. //
15 // Written by and Copyright (C) Francois Fleuret //
16 // Contact <francois.fleuret@idiap.ch> for comments & bug reports //
17 ///////////////////////////////////////////////////////////////////////////
27 #include "mtp_graph.h"
30 int _nb_locations, _nb_time_steps;
31 scalar_t **_detection_score;
32 int **_allowed_motion;
33 int *_entrances, *_exits;
36 scalar_t *_edge_lengths;
38 int early_pair_node(int t, int l);
39 int late_pair_node(int t, int l);
43 // The spatial structure
45 int *entrances, *exits;
47 // The detection scores at each node
48 scalar_t **detection_scores;
50 Tracker(int nb_time_steps, int nb_locations);
53 // Build or print the graph needed for the tracking per se
56 void print_graph_dot(ostream *os);
58 // Compute the optimal set of trajectories
62 // Read-out of the optimal trajectories
64 int nb_trajectories();
65 scalar_t trajectory_score(int k);
66 int trajectory_entrance_time(int k);
67 int trajectory_duration(int k);
68 int trajectory_location(int k, int time_from_entry);