diff c/Feature.cpp @ 129:4742b2b6d851

created basic feature saving code
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Wed, 17 Aug 2011 17:14:00 -0400
parents
children 45c64e68053c
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/c/Feature.cpp	Wed Aug 17 17:14:00 2011 -0400
@@ -0,0 +1,30 @@
+#include "Feature.hpp"
+
+#include "opencv2/core/core.hpp"
+
+using namespace std;
+using namespace cv;
+
+void FeatureTrajectory::addPoint(const int& frameNum, const Point2f& p) {
+  positions.add(frameNum, p);
+  computeMotionData(frameNum);
+}
+
+// protected
+
+void FeatureTrajectory::computeMotionData(const int& frameNum) {
+  unsigned int nPositions = positions.size();
+  if (nPositions >= 3) {
+    Point2f displacement = positions[nPositions-1] - positions[nPositions-2];
+    velocities.add(frameNum, displacement);
+    float dist = norm(displacement);
+    displacementDistances.push_back(dist);
+  } else if (nPositions == 2) {
+    Point2f displacement = positions[1] - positions[0];
+    velocities.add(frameNum-1, displacement);
+    velocities.add(frameNum, displacement);
+    float dist = norm(displacement);
+    displacementDistances.push_back(dist);
+    displacementDistances.push_back(dist);
+  }
+}