Mercurial > hg > nsaunier > traffic-intelligence
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); |
