Mercurial Hosting > traffic-intelligence
changeset 169:5f705809d37a
created groupFeatures function
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Sat, 01 Oct 2011 08:28:13 -0400 |
parents | 6ec7f6c61daf |
children | e99f6c44a655 |
files | c/feature-based-tracking.cpp |
diffstat | 1 files changed, 40 insertions(+), 37 deletions(-) [+] |
line wrap: on
line diff
--- a/c/feature-based-tracking.cpp Fri Sep 30 19:27:27 2011 -0400 +++ b/c/feature-based-tracking.cpp Sat Oct 01 08:28:13 2011 -0400 @@ -237,6 +237,44 @@ trajectoryDB->disconnect(); } +void groupFeatures(const KLTFeatureTrackingParameters& params) { + cout << "group" << endl; + + boost::shared_ptr<TrajectoryDBAccessList<Point2f> > trajectoryDB = boost::shared_ptr<TrajectoryDBAccessList<Point2f> >(new TrajectoryDBAccessList<Point2f>()); + //TODO write generic methods for blob and list versions TrajectoryDBAccess<Point2f>* trajectoryDB = new TrajectoryDBAccessBlob<Point2f>(); + bool success = trajectoryDB->connect(params.databaseFilename.c_str()); + vector<boost::shared_ptr<Trajectory<Point2f> > > trajectories; + cout << trajectories.size() << endl; + success = trajectoryDB->read(trajectories, "positions"); // TODO load velocities as well + cout << "Loaded " << trajectories.size() << " trajectories" << endl; + // for (int i=0; i<5; ++i) { + // stringstream ss; + // ss << *trajectories[i]; + // cout << ss.str() << endl; + // } + + // create views for first and last instants for each trajectory + // CREATE VIEW IF NOT EXISTS trajectory_first_instants AS select trajectory_id, min(frame_number) as first_instant from positions group by trajectory_id + // CREATE VIEW IF NOT EXISTS trajectory_last_instants AS select trajectory_id, max(frame_number) as last_instant from positions group by trajectory_id + //select trajectory_id from trajectory_first_instants where first_instant = 49 + + trajectoryDB->createViewInstants("first"); + trajectoryDB->createViewInstants("last"); + + // main loop + // TODO version que l'on peut interrompre ? + for (int frameNum = params.frame1; ((frameNum-params.frame1 < params.nFrames) || (params.nFrames < 0)); frameNum++) { + vector<int> ids; + cout << "frame " << frameNum << " " << trajectoryDB->trajectoryIdStartingAt(ids, frameNum) << endl; + BOOST_FOREACH(int i, ids) + cout << i << " "; + cout << endl; + } + + trajectoryDB->endTransaction(); + trajectoryDB->disconnect(); + } + int main(int argc, char *argv[]) { // BriefDescriptorExtractor brief(32); // const int DESIRED_FTRS = 500; @@ -247,43 +285,8 @@ if (params.trackFeatures) trackFeatures(params); - else if (params.groupFeatures) { - cout << "group" << endl; - - boost::shared_ptr<TrajectoryDBAccessList<Point2f> > trajectoryDB = boost::shared_ptr<TrajectoryDBAccessList<Point2f> >(new TrajectoryDBAccessList<Point2f>()); - //TODO write generic methods for blob and list versions TrajectoryDBAccess<Point2f>* trajectoryDB = new TrajectoryDBAccessBlob<Point2f>(); - bool success = trajectoryDB->connect(params.databaseFilename.c_str()); - vector<boost::shared_ptr<Trajectory<Point2f> > > trajectories; - cout << trajectories.size() << endl; - success = trajectoryDB->read(trajectories, "positions"); - cout << trajectories.size() << endl; - for (int i=0; i<5; ++i) { - stringstream ss; - ss << *trajectories[i]; - cout << ss.str() << endl; - } - - // create views for first and last instants for each trajectory - // CREATE VIEW IF NOT EXISTS trajectory_first_instants AS select trajectory_id, min(frame_number) as first_instant from positions group by trajectory_id - // CREATE VIEW IF NOT EXISTS trajectory_last_instants AS select trajectory_id, max(frame_number) as last_instant from positions group by trajectory_id - //select trajectory_id from trajectory_first_instants where first_instant = 49 - - trajectoryDB->createViewInstants("first"); - trajectoryDB->createViewInstants("last"); - - // main loop - // TODO version que l'on peut interrompre ? - for (int frameNum = params.frame1; ((frameNum-params.frame1 < params.nFrames) || (params.nFrames < 0)); frameNum++) { - vector<int> ids; - cout << "frame " << frameNum << " " << trajectoryDB->trajectoryIdStartingAt(ids, frameNum) << endl; - BOOST_FOREACH(int i, ids) - cout << i << " "; - cout << endl; - } - - trajectoryDB->endTransaction(); - trajectoryDB->disconnect(); - } + else if (params.groupFeatures) + groupFeatures(params); return 0; }