comparison c/feature-based-tracking.cpp @ 716:85af65b6d531 dev

corrected major bug slowing feature grouping
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Sat, 25 Jul 2015 23:28:52 -0400
parents 70a3cdf0dbb3
children 2cade72d75ad
comparison
equal deleted inserted replaced
715:a05f79c74d6d 716:85af65b6d531
295 for (frameNum = firstFrameNum; frameNum<lastFrameNum; frameNum ++) { 295 for (frameNum = firstFrameNum; frameNum<lastFrameNum; frameNum ++) {
296 vector<int> trajectoryIds; 296 vector<int> trajectoryIds;
297 success = trajectoryDB->trajectoryIdEndingAt(trajectoryIds, frameNum); 297 success = trajectoryDB->trajectoryIdEndingAt(trajectoryIds, frameNum);
298 if (frameNum%100 ==0) 298 if (frameNum%100 ==0)
299 cout << "frame " << frameNum << endl; 299 cout << "frame " << frameNum << endl;
300 //success = trajectoryDB->trajectoryIdInInterval(trajectoryIds, frameNum, min(frameNum+queryIntervalLength-1, frameNum+params.nFrames)); // ending
301 #if DEBUG 300 #if DEBUG
302 cout << trajectoryIds.size() << " trajectories " << endl; 301 cout << trajectoryIds.size() << " trajectories " << endl;
303 #endif 302 #endif
304 // vector<TrajectoryPoint2fPtr> positions, velocities;
305 // trajectoryDB->read(positions, trajectoryIds, "positions");
306 // trajectoryDB->read(velocities, trajectoryIds, "velocities");
307 // for (unsigned int i=0; i<trajectoryIds.size(); ++i) {
308 // FeatureTrajectoryPtr ft = FeatureTrajectoryPtr(new FeatureTrajectory(positions[i], velocities[i]));
309 BOOST_FOREACH(int trajectoryId, trajectoryIds) { 303 BOOST_FOREACH(int trajectoryId, trajectoryIds) {
310 //cout << trajectoryId << " " << endl;
311 // std::shared_ptr<Trajectory<cv::Point2f> > trajectory;
312 // success = trajectoryDB->read(trajectory, trajectoryId, "positions"); // velocities
313 FeatureTrajectoryPtr ft = FeatureTrajectoryPtr(new FeatureTrajectory(trajectoryId, *trajectoryDB, "positions", "velocities")); 304 FeatureTrajectoryPtr ft = FeatureTrajectoryPtr(new FeatureTrajectory(trajectoryId, *trajectoryDB, "positions", "velocities"));
314 // stringstream ss;ss << *ft; cout << ss.str() << endl;
315 // cout << ft->getFirstInstant() << " " << ft->getLastInstant() << endl;
316 featureGraph.addFeature(ft); 305 featureGraph.addFeature(ft);
317 } 306 }
318 307
319 // check for connected components 308 // check for connected components
320 int lastInstant = frameNum+params.minFeatureTime-maxTrajectoryLength; 309 int lastInstant = frameNum+params.minFeatureTime-maxTrajectoryLength;
324 featureGraph.getFeatureGroups(featureGroups); 313 featureGraph.getFeatureGroups(featureGroups);
325 for (unsigned int i=0; i<featureGroups.size(); ++i) { 314 for (unsigned int i=0; i<featureGroups.size(); ++i) {
326 vector<unsigned int> featureNumbers; 315 vector<unsigned int> featureNumbers;
327 for (unsigned int j=0; j<featureGroups[i].size(); ++j) 316 for (unsigned int j=0; j<featureGroups[i].size(); ++j)
328 featureNumbers.push_back(featureGroups[i][j]->getId()); 317 featureNumbers.push_back(featureGroups[i][j]->getId());
329 trajectoryDB->writeObject(savedObjectId, featureNumbers, 0 /* unknown */, 1, string("objects"), string("objects_features")); 318 trajectoryDB->writeObject(savedObjectId, featureNumbers, 0 /* unknown type */, 1, string("objects"), string("objects_features"));
330 savedObjectId++; 319 savedObjectId++;
331 } 320 }
332 } 321 }
333 322
334 if (frameNum%100 ==0) 323 if (frameNum%100 ==0)