Mercurial Hosting > 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); |