comparison include/Motion.hpp @ 192:38974d27dd2d

connected_components is working with listS for vertex list
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Mon, 12 Dec 2011 02:05:26 -0500
parents 0e60a306d324
children 09c7881073f3
comparison
equal deleted inserted replaced
191:0e60a306d324 192:38974d27dd2d
43 43
44 /// indicates whether the last two displacements are smooth (limited acceleration and angle) 44 /// indicates whether the last two displacements are smooth (limited acceleration and angle)
45 bool isMotionSmooth(const int& accelerationBound, const int& deviationBound) const; 45 bool isMotionSmooth(const int& accelerationBound, const int& deviationBound) const;
46 46
47 /// computes the distance according to the Beymer et al. algorithm 47 /// computes the distance according to the Beymer et al. algorithm
48 bool minMaxSimilarity(const FeatureTrajectory& ft, const int& firstInstant, const int& lastInstant, float connectionDistance, float segmentationDistance); 48 bool minMaxSimilarity(const FeatureTrajectory& ft, const int& firstInstant, const int& lastInstant, const float& connectionDistance, const float& segmentationDistance);
49 49
50 void addPoint(const int& frameNum, const cv::Point2f& p, const cv::Mat& homography); 50 void addPoint(const int& frameNum, const cv::Point2f& p, const cv::Mat& homography);
51 51
52 void shorten(void); 52 void shorten(void);
53 53
99 float maxDistance; 99 float maxDistance;
100 }; 100 };
101 101
102 struct VertexInformation { 102 struct VertexInformation {
103 FeatureTrajectoryPtr feature; 103 FeatureTrajectoryPtr feature;
104 int index;
104 }; 105 };
105 106
106 typedef boost::adjacency_list<boost::listS, boost::vecS, boost::undirectedS, VertexInformation, FeatureConnection> UndirectedGraph; 107 typedef boost::adjacency_list<boost::listS, boost::listS, boost::undirectedS, VertexInformation, FeatureConnection> UndirectedGraph;
107 108
108 public: 109 public:
109 typedef UndirectedGraph::vertex_descriptor vertex_descriptor; 110 typedef UndirectedGraph::vertex_descriptor vertex_descriptor;
110 111
111 //FeatureGraph(float _minDistance, float _maxDistance) : minDistance (_minDistance), maxDistance(_maxDistance) {}
112 FeatureGraph(float _connectionDistance, float _segmentationDistance, unsigned int _minFeatureTime, float _minNFeaturesPerGroup) : connectionDistance (_connectionDistance), segmentationDistance(_segmentationDistance), minFeatureTime(_minFeatureTime), minNFeaturesPerGroup(_minNFeaturesPerGroup) {} 112 FeatureGraph(float _connectionDistance, float _segmentationDistance, unsigned int _minFeatureTime, float _minNFeaturesPerGroup) : connectionDistance (_connectionDistance), segmentationDistance(_segmentationDistance), minFeatureTime(_minFeatureTime), minNFeaturesPerGroup(_minNFeaturesPerGroup) {}
113 113
114 void addFeature(const FeatureTrajectoryPtr& ft); 114 void addFeature(const FeatureTrajectoryPtr& ft);
115 115
116 // add vertex, includes adding links to current vertices 116 // add vertex, includes adding links to current vertices
133 float minNFeaturesPerGroup; 133 float minNFeaturesPerGroup;
134 // float minDistance; 134 // float minDistance;
135 // float maxDistance; 135 // float maxDistance;
136 136
137 UndirectedGraph graph; 137 UndirectedGraph graph;
138
139 void computeVertexIndex(void);
138 140
139 //std::vector<UndirectedGraph::vertex_descriptor> currentVertices, lostVertices; 141 //std::vector<UndirectedGraph::vertex_descriptor> currentVertices, lostVertices;
140 }; 142 };
141 143
142 // inlined implementations 144 // inlined implementations