comparison c/Motion.cpp @ 481:b6ad86ee7033

implemented smoothing (requires latest trajectory management library version)
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Wed, 02 Apr 2014 01:45:53 -0400
parents f43bc0b0ba74
children 46b5cb3f3114
comparison
equal deleted inserted replaced
480:f43bc0b0ba74 481:b6ad86ee7033
64 if (displacementDistances[nPositions-2] > displacementDistances[nPositions-3]) 64 if (displacementDistances[nPositions-2] > displacementDistances[nPositions-3])
65 ratio = displacementDistances[nPositions-2] / displacementDistances[nPositions-3]; 65 ratio = displacementDistances[nPositions-2] / displacementDistances[nPositions-3];
66 else 66 else
67 ratio = displacementDistances[nPositions-3] / displacementDistances[nPositions-2]; 67 ratio = displacementDistances[nPositions-3] / displacementDistances[nPositions-2];
68 68
69 float cosine = scalarProduct((*velocities)[nPositions-3],(*velocities)[nPositions-2]) / (displacementDistances[nPositions-3] * displacementDistances[nPositions-2]); 69 float cosine = (*velocities)[nPositions-3].dot((*velocities)[nPositions-2]) / (displacementDistances[nPositions-3] * displacementDistances[nPositions-2]);
70 70
71 result = (ratio < accelerationBound) & (cosine > deviationBound); 71 result = (ratio < accelerationBound) & (cosine > deviationBound);
72 } 72 }
73 return result; 73 return result;
74 } 74 }
107 107
108 void FeatureTrajectory::shorten(void) { 108 void FeatureTrajectory::shorten(void) {
109 positions->pop_back(); 109 positions->pop_back();
110 velocities->pop_back(); 110 velocities->pop_back();
111 displacementDistances.pop_back(); 111 displacementDistances.pop_back();
112 }
113
114 void FeatureTrajectory::movingAverage(const unsigned int& nFramesSmoothing) {
115 positions->movingAverage(nFramesSmoothing);
116 velocities->movingAverage(nFramesSmoothing);
112 } 117 }
113 118
114 void FeatureTrajectory::write(TrajectoryDBAccess<Point2f>& trajectoryDB, const string& positionsTableName, const string& velocitiesTableName) const { 119 void FeatureTrajectory::write(TrajectoryDBAccess<Point2f>& trajectoryDB, const string& positionsTableName, const string& velocitiesTableName) const {
115 trajectoryDB.write(*positions, positionsTableName); 120 trajectoryDB.write(*positions, positionsTableName);
116 trajectoryDB.write(*velocities, velocitiesTableName); 121 trajectoryDB.write(*velocities, velocitiesTableName);