Mercurial Hosting > traffic-intelligence
diff c/feature-based-tracking.cpp @ 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 | b32947b002da |
line wrap: on
line diff
--- 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; }