comparison c/Motion.cpp @ 138:c1b260b48d2a

corrected initialization bugs and feature shortening before saving
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Fri, 19 Aug 2011 12:15:23 -0400
parents 445e773c9be3
children 47329bd16cc0
comparison
equal deleted inserted replaced
137:445e773c9be3 138:c1b260b48d2a
10 10
11 FeatureTrajectory::FeatureTrajectory(const int& frameNum, const cv::Point2f& p) { 11 FeatureTrajectory::FeatureTrajectory(const int& frameNum, const cv::Point2f& p) {
12 addPoint(frameNum, p); 12 addPoint(frameNum, p);
13 } 13 }
14 14
15 bool FeatureTrajectory::largeDisplacement(const unsigned int& nDisplacements, const float& minTotalFeatureDisplacement) const { 15 bool FeatureTrajectory::smallDisplacement(const unsigned int& nDisplacements, const float& minTotalFeatureDisplacement) const {
16 bool result = true; 16 bool result = false;
17 unsigned int nPositions = positions.size(); 17 unsigned int nPositions = positions.size();
18 if (nPositions > nDisplacements) { 18 if (nPositions > nDisplacements) {
19 float disp = 0; 19 float disp = 0;
20 for (unsigned int i=0; i<nDisplacements; i++) 20 for (unsigned int i=0; i<nDisplacements; i++)
21 disp += displacementDistances[nPositions-2-i]; 21 disp += displacementDistances[nPositions-2-i];
22 result = disp > minTotalFeatureDisplacement; 22 result = disp < minTotalFeatureDisplacement;
23 } 23 }
24 return result; 24 return result;
25 } 25 }
26 26
27 void FeatureTrajectory::addPoint(const int& frameNum, const Point2f& p) { 27 void FeatureTrajectory::addPoint(const int& frameNum, const Point2f& p) {
28 positions.add(frameNum, p); 28 positions.add(frameNum, p);
29 computeMotionData(frameNum); 29 computeMotionData(frameNum);
30 }
31
32 void FeatureTrajectory::shorten(void) {
33 positions.pop_back();
34 velocities.pop_back();
35 displacementDistances.pop_back();
30 } 36 }
31 37
32 void FeatureTrajectory::write(TrajectoryDBAccess<Point2f>& trajectoryDB) const { 38 void FeatureTrajectory::write(TrajectoryDBAccess<Point2f>& trajectoryDB) const {
33 /// \todo save velocities 39 /// \todo save velocities
34 trajectoryDB.write(positions); 40 trajectoryDB.write(positions);