changeset 219:841a1714f702

added comments for future development
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Thu, 21 Jun 2012 19:10:47 -0400
parents b5772df11b37
children f0f800b95765
files c/feature-based-tracking.cpp
diffstat 1 files changed, 8 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/c/feature-based-tracking.cpp	Thu Jun 21 18:04:11 2012 -0400
+++ b/c/feature-based-tracking.cpp	Thu Jun 21 19:10:47 2012 -0400
@@ -250,8 +250,6 @@
 }
 
 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());
@@ -274,16 +272,19 @@
   // cout << "Loaded " << trajectories.size() << " trajectories one by one in " << 1000.0 * (c_end-c_start) / CLOCKS_PER_SEC << " CPU seconds" << endl;
 
   trajectoryDB->createViewInstants();
-  int maxTrajectoryLength;
-  trajectoryDB->maxTrajectoryLength(maxTrajectoryLength);
-  cout << "max trajectory length " << maxTrajectoryLength << endl;
-  maxTrajectoryLength = 20; // for tests
+  // int maxTrajectoryLength;
+  // trajectoryDB->maxTrajectoryLength(maxTrajectoryLength);
+  // cout << "max trajectory length " << maxTrajectoryLength << endl;
+  //maxTrajectoryLength = 20; // for tests
+
+  // alternative: read and load features in batches directly select * from positions where trajectory_id in select trajectory_id from positions where frame_number <100 and frame_number > 50 group by trajectory_id
+  int queryIntervalLength = 100;
 
   FeatureGraph featureGraph(params.mmConnectionDistance, params.mmSegmentationDistance, params.minFeatureTime, params.minNFeaturesPerGroup);
 
   // main loop
   // TODO version that can be interrupted?
-  for (int frameNum = params.frame1; ((frameNum-params.frame1 < params.nFrames) || (params.nFrames < 0)); frameNum++) {
+  for (int frameNum = params.frame1; ((frameNum-params.frame1 < params.nFrames) || (params.nFrames < 0)); frameNum++) { // frameNum += queryIntervalLength // interval = frameNum, min(frameNum+queryIntervalLength, frameNum+params.nFrames) // stop if no trajectory available ? problem if nothing moves, timeout, get max of trajectory frame numbers
     vector<int> trajectoryIds;
     success  = trajectoryDB->trajectoryIdEndingAt(trajectoryIds, frameNum); // ending
     cout << "frame " << frameNum << " " << success << endl;