Mercurial Hosting > traffic-intelligence
changeset 142:a3532db00c28
added code to write velocities
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Wed, 24 Aug 2011 02:12:06 -0400 |
parents | 6f10a227486c |
children | 436b87d4b992 |
files | c/Motion.cpp c/feature-based-tracking.cpp include/Motion.hpp |
diffstat | 3 files changed, 11 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/c/Motion.cpp Wed Aug 24 01:34:27 2011 -0400 +++ b/c/Motion.cpp Wed Aug 24 02:12:06 2011 -0400 @@ -55,9 +55,9 @@ displacementDistances.pop_back(); } -void FeatureTrajectory::write(TrajectoryDBAccess<Point2f>& trajectoryDB) const { - /// \todo save velocities - trajectoryDB.write(positions); +void FeatureTrajectory::write(TrajectoryDBAccess<Point2f>& trajectoryDB, const string& positionsTableName, const string& velocitiesTableName) const { + trajectoryDB.write(positions, positionsTableName); + trajectoryDB.write(velocities, velocitiesTableName); } #ifdef USE_OPENCV
--- a/c/feature-based-tracking.cpp Wed Aug 24 01:34:27 2011 -0400 +++ b/c/feature-based-tracking.cpp Wed Aug 24 02:12:06 2011 -0400 @@ -52,9 +52,9 @@ feature(_feature), pointNum(_pointNum) {} }; -inline void saveFeatures(vector<FeatureTrajectoryPtr>& features, TrajectoryDBAccess<Point2f>& db, const unsigned int& minNFeatures = 0) { +inline void saveFeatures(vector<FeatureTrajectoryPtr>& features, TrajectoryDBAccess<Point2f>& db, const string& positionsTableName, const string& velocitiesTableName, const unsigned int& minNFeatures = 0) { if (features.size() >= minNFeatures) { - BOOST_FOREACH(FeatureTrajectoryPtr f, features) f->write(db); + BOOST_FOREACH(FeatureTrajectoryPtr f, features) f->write(db, positionsTableName, velocitiesTableName); features.clear(); } } @@ -120,7 +120,9 @@ boost::shared_ptr<TrajectoryDBAccess<Point2f> > trajectoryDB = boost::shared_ptr<TrajectoryDBAccess<Point2f> >(new TrajectoryDBAccessList<Point2f>()); //TrajectoryDBAccess<Point2f>* trajectoryDB = new TrajectoryDBAccessBlob<Point2f>(); trajectoryDB->connect(params.databaseFilename.c_str()); - trajectoryDB->createTable(); + trajectoryDB->createTable("positions"); + trajectoryDB->createTable("velocities"); + trajectoryDB->beginTransaction(); vector<KeyPoint> prevKpts, currKpts; vector<Point2f> prevPts, currPts, newPts; @@ -181,7 +183,7 @@ } currPts = trackedPts; assert(currPts.size() == featurePointMatches.size()); - saveFeatures(lostFeatures, *trajectoryDB); + saveFeatures(lostFeatures, *trajectoryDB, "positions", "velocities"); if (params.display) { BOOST_FOREACH(FeaturePointMatch fp, featurePointMatches) @@ -223,6 +225,7 @@ //currDesc.copyTo(prevDesc); } + trajectoryDB->endTransaction(); trajectoryDB->disconnect(); return 0; }
--- a/include/Motion.hpp Wed Aug 24 01:34:27 2011 -0400 +++ b/include/Motion.hpp Wed Aug 24 02:12:06 2011 -0400 @@ -28,7 +28,7 @@ void shorten(void); - void write(TrajectoryDBAccess<cv::Point2f>& trajectoryDB) const; + void write(TrajectoryDBAccess<cv::Point2f>& trajectoryDB, const string& positionsTableName, const string& velocitiesTableName) const; #ifdef USE_OPENCV void draw(cv::Mat& img, const cv::Scalar& color) const;