# HG changeset patch # User Nicolas Saunier # Date 1313615640 14400 # Node ID 4742b2b6d8513dba10a77d3ff65d0126c3a8df0d # Parent 536510f60854538b227a64fc023cf54eae98dd82 created basic feature saving code diff -r 536510f60854 -r 4742b2b6d851 c/Feature.cpp --- /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); + } +} diff -r 536510f60854 -r 4742b2b6d851 c/Makefile --- a/c/Makefile Wed Aug 17 02:44:28 2011 -0400 +++ b/c/Makefile Wed Aug 17 17:14:00 2011 -0400 @@ -62,7 +62,7 @@ test: echo "coucou $(HOME)" -feature-based-tracking: feature-based-tracking.o cvutils.o +feature-based-tracking: feature-based-tracking.o cvutils.o Feature.o $(CXX) $(CFLAGS) $(LIBS) $^ -o $(BUILD_DIR)/$@ $(LDFLAGS) track-features.o: track-features.cpp diff -r 536510f60854 -r 4742b2b6d851 include/Feature.hpp --- a/include/Feature.hpp Wed Aug 17 02:44:28 2011 -0400 +++ b/include/Feature.hpp Wed Aug 17 17:14:00 2011 -0400 @@ -1,16 +1,22 @@ #ifndef FEATURE_HPP #define FEATURE_HPP -#include "opencv/cv.h" +#include "opencv2/core/core.hpp" #include "src/Trajectory.h" -class Feature { +class FeatureTrajectory { + + void addPoint(const int& frameNum, const cv::Point2f& p); protected: - int id; - int firstInstant; - Trajectory trajectory; + Trajectory positions; + Trajectory velocities; + + std::vector displacementDistances; + + void computeMotionData(const int& frameNum); + }; #endif