# HG changeset patch # User Nicolas Saunier # Date 1340320247 14400 # Node ID 841a1714f702a8fdf73c8222646ba95ccecdfcf1 # Parent b5772df11b37e5373d5a4b4babd1837a7f160b2c added comments for future development diff -r b5772df11b37 -r 841a1714f702 c/feature-based-tracking.cpp --- 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 > trajectoryDB = boost::shared_ptr >(new TrajectoryDBAccessList()); //TODO write generic methods for blob and list versions TrajectoryDBAccess* trajectoryDB = new TrajectoryDBAccessBlob(); 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 trajectoryIds; success = trajectoryDB->trajectoryIdEndingAt(trajectoryIds, frameNum); // ending cout << "frame " << frameNum << " " << success << endl;