Mercurial > hg > nsaunier > traffic-intelligence
annotate include/Motion.hpp @ 398:3399bd48cb40
Ajout d'une méthode pour obtenir le nombre de FPS
Méthode de capture des trames vidéos plus résistante aux erreur
Utilisation d'un dictionnaire pour les fichier de configuration afin de garder le nom des sections
| author | Jean-Philippe Jodoin <jpjodoin@gmail.com> |
|---|---|
| date | Mon, 29 Jul 2013 13:46:07 -0400 |
| parents | 03dbecd3a887 |
| children | c389fae9689a |
| rev | line source |
|---|---|
|
177
ae2286b1a3fd
added loading FeatureTrajectory from database, printing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
176
diff
changeset
|
1 #ifndef MOTION_HPP |
|
ae2286b1a3fd
added loading FeatureTrajectory from database, printing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
176
diff
changeset
|
2 #define MOTION_HPP |
|
119
45a426552aaa
compilation of very simple feature class with trajectory
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
3 |
|
45a426552aaa
compilation of very simple feature class with trajectory
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
4 #include "src/Trajectory.h" |
|
132
45c64e68053c
added drawing function for features
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
129
diff
changeset
|
5 #include <boost/shared_ptr.hpp> |
|
163
cde87a07eb58
added graph structures
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
147
diff
changeset
|
6 #include <boost/graph/adjacency_list.hpp> |
|
132
45c64e68053c
added drawing function for features
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
129
diff
changeset
|
7 |
|
133
63dd4355b6d1
saving of feature positions in sqlite database
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
132
diff
changeset
|
8 template<typename T> class TrajectoryDBAccess; |
|
177
ae2286b1a3fd
added loading FeatureTrajectory from database, printing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
176
diff
changeset
|
9 template<typename T> class TrajectoryDBAccessList; |
|
133
63dd4355b6d1
saving of feature positions in sqlite database
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
132
diff
changeset
|
10 |
|
176
9323427aa0a3
changed positions and velocities to shared pointers and renamed methods
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
165
diff
changeset
|
11 typedef boost::shared_ptr<TrajectoryPoint2f> TrajectoryPoint2fPtr; |
|
9323427aa0a3
changed positions and velocities to shared pointers and renamed methods
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
165
diff
changeset
|
12 |
|
132
45c64e68053c
added drawing function for features
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
129
diff
changeset
|
13 /** Class for feature data |
|
45c64e68053c
added drawing function for features
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
129
diff
changeset
|
14 positions, velocities and other statistics to evaluate their quality |
|
45c64e68053c
added drawing function for features
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
129
diff
changeset
|
15 before saving. */ |
|
129
4742b2b6d851
created basic feature saving code
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
119
diff
changeset
|
16 class FeatureTrajectory { |
|
132
45c64e68053c
added drawing function for features
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
129
diff
changeset
|
17 public: |
|
200
0a27fa343257
added one test and cleaned the first and last instant mess
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
196
diff
changeset
|
18 FeatureTrajectory(const unsigned int& frameNum, const cv::Point2f& p, const cv::Mat& homography); |
|
129
4742b2b6d851
created basic feature saving code
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
119
diff
changeset
|
19 |
|
177
ae2286b1a3fd
added loading FeatureTrajectory from database, printing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
176
diff
changeset
|
20 FeatureTrajectory(TrajectoryPoint2fPtr& _positions, TrajectoryPoint2fPtr& _velocities); |
|
ae2286b1a3fd
added loading FeatureTrajectory from database, printing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
176
diff
changeset
|
21 |
|
ae2286b1a3fd
added loading FeatureTrajectory from database, printing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
176
diff
changeset
|
22 /** loads from database |
|
ae2286b1a3fd
added loading FeatureTrajectory from database, printing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
176
diff
changeset
|
23 can be made generic for different list and blob */ |
|
ae2286b1a3fd
added loading FeatureTrajectory from database, printing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
176
diff
changeset
|
24 FeatureTrajectory(const int& id, TrajectoryDBAccessList<cv::Point2f>& trajectoryDB, const std::string& positionsTableName, const std::string& velocitiesTableName); |
|
ae2286b1a3fd
added loading FeatureTrajectory from database, printing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
176
diff
changeset
|
25 |
|
179
4f10e97cb677
added getting first and last instant for each feature
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
178
diff
changeset
|
26 unsigned int length(void) const { return positions->size();} // cautious if not continuous: max-min+1 |
|
134
a617d0808bbc
added test on feature length and display control
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
133
diff
changeset
|
27 |
|
191
0e60a306d324
added basic code to identify features and save them (crash)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
190
diff
changeset
|
28 unsigned int getId(void) const { return positions->getId();} |
|
176
9323427aa0a3
changed positions and velocities to shared pointers and renamed methods
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
165
diff
changeset
|
29 void setId(const unsigned int& id) { positions->setId(id);velocities->setId(id);} |
|
133
63dd4355b6d1
saving of feature positions in sqlite database
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
132
diff
changeset
|
30 |
|
179
4f10e97cb677
added getting first and last instant for each feature
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
178
diff
changeset
|
31 unsigned int getFirstInstant(void) {return firstInstant;} |
|
4f10e97cb677
added getting first and last instant for each feature
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
178
diff
changeset
|
32 unsigned int getLastInstant(void) {return lastInstant;} |
|
4f10e97cb677
added getting first and last instant for each feature
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
178
diff
changeset
|
33 |
|
186
6c48283a78ca
work on feature similarity, issue with getting point
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
180
diff
changeset
|
34 //TrajectoryPoint2fPtr& getPositions(void) { return positions;} |
|
6c48283a78ca
work on feature similarity, issue with getting point
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
180
diff
changeset
|
35 //TrajectoryPoint2fPtr& getVelocities(void) { return velocities;} |
|
6c48283a78ca
work on feature similarity, issue with getting point
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
180
diff
changeset
|
36 |
|
138
c1b260b48d2a
corrected initialization bugs and feature shortening before saving
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
136
diff
changeset
|
37 /// indicates whether the sum of the last nDisplacements displacements has been inferior to minFeatureDisplacement |
|
176
9323427aa0a3
changed positions and velocities to shared pointers and renamed methods
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
165
diff
changeset
|
38 bool isDisplacementSmall(const unsigned int& nDisplacements, const float& minTotalFeatureDisplacement) const; |
|
135
32d2722d4028
added constraint on minimum displacement
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
134
diff
changeset
|
39 |
|
139
47329bd16cc0
cleaned code, added condition on smooth displacement
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
138
diff
changeset
|
40 /// indicates whether the last two displacements are smooth (limited acceleration and angle) |
|
176
9323427aa0a3
changed positions and velocities to shared pointers and renamed methods
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
165
diff
changeset
|
41 bool isMotionSmooth(const int& accelerationBound, const int& deviationBound) const; |
|
139
47329bd16cc0
cleaned code, added condition on smooth displacement
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
138
diff
changeset
|
42 |
|
186
6c48283a78ca
work on feature similarity, issue with getting point
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
180
diff
changeset
|
43 /// computes the distance according to the Beymer et al. algorithm |
|
192
38974d27dd2d
connected_components is working with listS for vertex list
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
191
diff
changeset
|
44 bool minMaxSimilarity(const FeatureTrajectory& ft, const int& firstInstant, const int& lastInstant, const float& connectionDistance, const float& segmentationDistance); |
|
186
6c48283a78ca
work on feature similarity, issue with getting point
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
180
diff
changeset
|
45 |
|
200
0a27fa343257
added one test and cleaned the first and last instant mess
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
196
diff
changeset
|
46 void addPoint(const unsigned int& frameNum, const cv::Point2f& p, const cv::Mat& homography); |
|
119
45a426552aaa
compilation of very simple feature class with trajectory
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
47 |
|
138
c1b260b48d2a
corrected initialization bugs and feature shortening before saving
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
136
diff
changeset
|
48 void shorten(void); |
|
c1b260b48d2a
corrected initialization bugs and feature shortening before saving
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
136
diff
changeset
|
49 |
|
165
50964af05a80
solved issue with header inclusion
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
163
diff
changeset
|
50 void write(TrajectoryDBAccess<cv::Point2f>& trajectoryDB, const std::string& positionsTableName, const std::string& velocitiesTableName) const; |
|
133
63dd4355b6d1
saving of feature positions in sqlite database
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
132
diff
changeset
|
51 |
|
132
45c64e68053c
added drawing function for features
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
129
diff
changeset
|
52 #ifdef USE_OPENCV |
|
147
0089fb29cd26
added projection of points and reprojection for display
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
142
diff
changeset
|
53 void draw(cv::Mat& img, const cv::Mat& homography, const cv::Scalar& color) const; |
|
132
45c64e68053c
added drawing function for features
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
129
diff
changeset
|
54 #endif |
|
45c64e68053c
added drawing function for features
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
129
diff
changeset
|
55 |
|
362
cc8e54997d4c
corrected error in tests and changed sstream to ostream for FeatureTrajectory operator<<
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
231
diff
changeset
|
56 friend std::ostream& operator<<(std::ostream& out, const FeatureTrajectory& ft); |
|
177
ae2286b1a3fd
added loading FeatureTrajectory from database, printing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
176
diff
changeset
|
57 |
|
119
45a426552aaa
compilation of very simple feature class with trajectory
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
58 protected: |
|
179
4f10e97cb677
added getting first and last instant for each feature
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
178
diff
changeset
|
59 /// first frame number |
|
4f10e97cb677
added getting first and last instant for each feature
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
178
diff
changeset
|
60 unsigned int firstInstant; |
|
4f10e97cb677
added getting first and last instant for each feature
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
178
diff
changeset
|
61 /// last frame number |
|
4f10e97cb677
added getting first and last instant for each feature
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
178
diff
changeset
|
62 unsigned int lastInstant; |
|
4f10e97cb677
added getting first and last instant for each feature
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
178
diff
changeset
|
63 |
|
176
9323427aa0a3
changed positions and velocities to shared pointers and renamed methods
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
165
diff
changeset
|
64 TrajectoryPoint2fPtr positions; |
|
139
47329bd16cc0
cleaned code, added condition on smooth displacement
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
138
diff
changeset
|
65 /** one fewer velocity than position |
|
362
cc8e54997d4c
corrected error in tests and changed sstream to ostream for FeatureTrajectory operator<<
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
231
diff
changeset
|
66 v_n = p_n - p_n-1*/ |
|
176
9323427aa0a3
changed positions and velocities to shared pointers and renamed methods
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
165
diff
changeset
|
67 TrajectoryPoint2fPtr velocities; |
|
129
4742b2b6d851
created basic feature saving code
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
119
diff
changeset
|
68 |
|
139
47329bd16cc0
cleaned code, added condition on smooth displacement
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
138
diff
changeset
|
69 /// norms of velocities for feature constraints, one fewer positions than positions |
|
129
4742b2b6d851
created basic feature saving code
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
119
diff
changeset
|
70 std::vector<float> displacementDistances; |
|
4742b2b6d851
created basic feature saving code
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
119
diff
changeset
|
71 |
|
4742b2b6d851
created basic feature saving code
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
119
diff
changeset
|
72 void computeMotionData(const int& frameNum); |
|
119
45a426552aaa
compilation of very simple feature class with trajectory
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
73 }; |
|
45a426552aaa
compilation of very simple feature class with trajectory
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
74 |
|
132
45c64e68053c
added drawing function for features
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
129
diff
changeset
|
75 typedef boost::shared_ptr<FeatureTrajectory> FeatureTrajectoryPtr; |
|
45c64e68053c
added drawing function for features
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
129
diff
changeset
|
76 |
|
177
ae2286b1a3fd
added loading FeatureTrajectory from database, printing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
176
diff
changeset
|
77 // inlined |
|
362
cc8e54997d4c
corrected error in tests and changed sstream to ostream for FeatureTrajectory operator<<
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
231
diff
changeset
|
78 inline std::ostream& operator<<(std::ostream& out, const FeatureTrajectory& ft) { |
|
177
ae2286b1a3fd
added loading FeatureTrajectory from database, printing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
176
diff
changeset
|
79 out << *(ft.positions); |
|
ae2286b1a3fd
added loading FeatureTrajectory from database, printing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
176
diff
changeset
|
80 out << "\n"; |
|
ae2286b1a3fd
added loading FeatureTrajectory from database, printing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
176
diff
changeset
|
81 out << *(ft.velocities); |
|
ae2286b1a3fd
added loading FeatureTrajectory from database, printing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
176
diff
changeset
|
82 return out; |
|
ae2286b1a3fd
added loading FeatureTrajectory from database, printing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
176
diff
changeset
|
83 } |
|
ae2286b1a3fd
added loading FeatureTrajectory from database, printing
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
176
diff
changeset
|
84 |
|
135
32d2722d4028
added constraint on minimum displacement
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
134
diff
changeset
|
85 // class MovingObject {} |
|
32d2722d4028
added constraint on minimum displacement
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
134
diff
changeset
|
86 // roadUserType, group of features |
|
32d2722d4028
added constraint on minimum displacement
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
134
diff
changeset
|
87 |
|
179
4f10e97cb677
added getting first and last instant for each feature
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
178
diff
changeset
|
88 /** Class to group features: Beymer et al. 99/Saunier and Sayed 06 |
|
4f10e97cb677
added getting first and last instant for each feature
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
178
diff
changeset
|
89 \todo create various graph types with different parameters, that accept different feature distances or ways to connect and segment features */ |
|
163
cde87a07eb58
added graph structures
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
147
diff
changeset
|
90 class FeatureGraph { |
|
cde87a07eb58
added graph structures
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
147
diff
changeset
|
91 protected: |
|
cde87a07eb58
added graph structures
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
147
diff
changeset
|
92 struct FeatureConnection { |
|
cde87a07eb58
added graph structures
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
147
diff
changeset
|
93 float minDistance; |
|
cde87a07eb58
added graph structures
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
147
diff
changeset
|
94 float maxDistance; |
|
cde87a07eb58
added graph structures
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
147
diff
changeset
|
95 }; |
|
cde87a07eb58
added graph structures
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
147
diff
changeset
|
96 |
|
cde87a07eb58
added graph structures
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
147
diff
changeset
|
97 struct VertexInformation { |
|
179
4f10e97cb677
added getting first and last instant for each feature
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
178
diff
changeset
|
98 FeatureTrajectoryPtr feature; |
|
192
38974d27dd2d
connected_components is working with listS for vertex list
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
191
diff
changeset
|
99 int index; |
|
163
cde87a07eb58
added graph structures
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
147
diff
changeset
|
100 }; |
|
cde87a07eb58
added graph structures
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
147
diff
changeset
|
101 |
|
192
38974d27dd2d
connected_components is working with listS for vertex list
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
191
diff
changeset
|
102 typedef boost::adjacency_list<boost::listS, boost::listS, boost::undirectedS, VertexInformation, FeatureConnection> UndirectedGraph; |
|
163
cde87a07eb58
added graph structures
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
147
diff
changeset
|
103 |
|
191
0e60a306d324
added basic code to identify features and save them (crash)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
190
diff
changeset
|
104 public: |
|
0e60a306d324
added basic code to identify features and save them (crash)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
190
diff
changeset
|
105 typedef UndirectedGraph::vertex_descriptor vertex_descriptor; |
|
0e60a306d324
added basic code to identify features and save them (crash)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
190
diff
changeset
|
106 |
|
0e60a306d324
added basic code to identify features and save them (crash)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
190
diff
changeset
|
107 FeatureGraph(float _connectionDistance, float _segmentationDistance, unsigned int _minFeatureTime, float _minNFeaturesPerGroup) : connectionDistance (_connectionDistance), segmentationDistance(_segmentationDistance), minFeatureTime(_minFeatureTime), minNFeaturesPerGroup(_minNFeaturesPerGroup) {} |
|
0e60a306d324
added basic code to identify features and save them (crash)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
190
diff
changeset
|
108 |
|
0e60a306d324
added basic code to identify features and save them (crash)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
190
diff
changeset
|
109 void addFeature(const FeatureTrajectoryPtr& ft); |
|
0e60a306d324
added basic code to identify features and save them (crash)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
190
diff
changeset
|
110 |
|
0e60a306d324
added basic code to identify features and save them (crash)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
190
diff
changeset
|
111 // add vertex, includes adding links to current vertices |
|
0e60a306d324
added basic code to identify features and save them (crash)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
190
diff
changeset
|
112 // find connected components, check if old enough, if so, remove |
|
0e60a306d324
added basic code to identify features and save them (crash)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
190
diff
changeset
|
113 |
|
0e60a306d324
added basic code to identify features and save them (crash)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
190
diff
changeset
|
114 /// Computes the connected components: features have to be older than lastInstant |
|
221
bc93e87a2108
cleaned and corrected connected components and feature groups
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
201
diff
changeset
|
115 void connectedComponents(const unsigned int& lastInstant); |
|
191
0e60a306d324
added basic code to identify features and save them (crash)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
190
diff
changeset
|
116 |
|
0e60a306d324
added basic code to identify features and save them (crash)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
190
diff
changeset
|
117 /** Performs some checks on groups of features and return their lists of ids if correct |
|
201
f7ddfc4aeb1e
added tests for graphs
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
200
diff
changeset
|
118 Removes the vertices from the graph */ |
|
391
03dbecd3a887
modified feature grouping to return vectors of pointers to feature trajectories
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
362
diff
changeset
|
119 void getFeatureGroups(std::vector<std::vector<FeatureTrajectoryPtr> >& featureGroups); |
|
191
0e60a306d324
added basic code to identify features and save them (crash)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
190
diff
changeset
|
120 |
|
196
aeab0b88c9b6
began testing of FeatureGraph
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
194
diff
changeset
|
121 std::string informationString(void) const; |
|
aeab0b88c9b6
began testing of FeatureGraph
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
194
diff
changeset
|
122 |
|
aeab0b88c9b6
began testing of FeatureGraph
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
194
diff
changeset
|
123 int getNVertices(void) const; |
|
aeab0b88c9b6
began testing of FeatureGraph
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
194
diff
changeset
|
124 int getNEdges(void) const; |
|
191
0e60a306d324
added basic code to identify features and save them (crash)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
190
diff
changeset
|
125 |
|
0e60a306d324
added basic code to identify features and save them (crash)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
190
diff
changeset
|
126 protected: |
|
179
4f10e97cb677
added getting first and last instant for each feature
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
178
diff
changeset
|
127 float connectionDistance; |
|
4f10e97cb677
added getting first and last instant for each feature
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
178
diff
changeset
|
128 float segmentationDistance; |
|
180
3a4eef37384f
method to add features and vertices to graph
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
179
diff
changeset
|
129 unsigned int minFeatureTime; |
|
191
0e60a306d324
added basic code to identify features and save them (crash)
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
190
diff
changeset
|
130 float minNFeaturesPerGroup; |
|
179
4f10e97cb677
added getting first and last instant for each feature
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
178
diff
changeset
|
131 // float minDistance; |
|
4f10e97cb677
added getting first and last instant for each feature
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
178
diff
changeset
|
132 // float maxDistance; |
|
163
cde87a07eb58
added graph structures
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
147
diff
changeset
|
133 |
|
cde87a07eb58
added graph structures
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
147
diff
changeset
|
134 UndirectedGraph graph; |
|
192
38974d27dd2d
connected_components is working with listS for vertex list
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
191
diff
changeset
|
135 |
|
194
09c7881073f3
connected commponents works, but issue with removing the vertices
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
192
diff
changeset
|
136 std::vector<std::vector<vertex_descriptor> > objectHypotheses; |
|
09c7881073f3
connected commponents works, but issue with removing the vertices
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
192
diff
changeset
|
137 |
|
192
38974d27dd2d
connected_components is working with listS for vertex list
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
191
diff
changeset
|
138 void computeVertexIndex(void); |
|
163
cde87a07eb58
added graph structures
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
147
diff
changeset
|
139 |
|
179
4f10e97cb677
added getting first and last instant for each feature
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
178
diff
changeset
|
140 //std::vector<UndirectedGraph::vertex_descriptor> currentVertices, lostVertices; |
|
163
cde87a07eb58
added graph structures
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
147
diff
changeset
|
141 }; |
|
cde87a07eb58
added graph structures
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
147
diff
changeset
|
142 |
|
cde87a07eb58
added graph structures
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
147
diff
changeset
|
143 // inlined implementations |
|
cde87a07eb58
added graph structures
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
147
diff
changeset
|
144 // inline FeatureGraph::FeatureGraph(float _minDistance, float _maxDistance) |
|
cde87a07eb58
added graph structures
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
147
diff
changeset
|
145 |
|
119
45a426552aaa
compilation of very simple feature class with trajectory
Nicolas Saunier <nicolas.saunier@polymtl.ca>
parents:
diff
changeset
|
146 #endif |
