comparison c/feature-based-tracking.cpp @ 391:03dbecd3a887

modified feature grouping to return vectors of pointers to feature trajectories
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Thu, 25 Jul 2013 18:58:55 -0400
parents 68861b52a319
children c389fae9689a
comparison
equal deleted inserted replaced
389:6d26dcc7bba0 391:03dbecd3a887
312 312
313 // check for connected components 313 // check for connected components
314 int lastInstant = frameNum+params.minFeatureTime-maxTrajectoryLength; 314 int lastInstant = frameNum+params.minFeatureTime-maxTrajectoryLength;
315 if (lastInstant > 0 && frameNum%10==0) { 315 if (lastInstant > 0 && frameNum%10==0) {
316 featureGraph.connectedComponents(lastInstant); 316 featureGraph.connectedComponents(lastInstant);
317 vector<vector<unsigned int> > featureGroups = featureGraph.getFeatureGroups(); 317 vector<vector<FeatureTrajectoryPtr> > featureGroups;
318 featureGraph.getFeatureGroups(featureGroups);
318 for (unsigned int i=0; i<featureGroups.size(); ++i) { 319 for (unsigned int i=0; i<featureGroups.size(); ++i) {
319 trajectoryDB->writeObject(savedObjectId, featureGroups[i], -1, 1, string("objects"), string("objects_features")); 320 vector<unsigned int> featureNumbers;
321 for (unsigned int j=0; j<featureGroups[i].size(); ++j)
322 featureNumbers.push_back(featureGroups[i][j]->getId());
323 trajectoryDB->writeObject(savedObjectId, featureNumbers, -1, 1, string("objects"), string("objects_features"));
320 savedObjectId++; 324 savedObjectId++;
321 } 325 }
322 } 326 }
323 327
324 if (frameNum%100 ==0) 328 if (frameNum%100 ==0)
325 cout << featureGraph.informationString() << endl; 329 cout << featureGraph.informationString() << endl;
326 } 330 }
327 331
328 // save remaining objects 332 // save remaining objects
329 featureGraph.connectedComponents(frameNum+maxTrajectoryLength+1); 333 featureGraph.connectedComponents(frameNum+maxTrajectoryLength+1);
330 vector<vector<unsigned int> > featureGroups = featureGraph.getFeatureGroups(); 334 vector<vector<FeatureTrajectoryPtr> > featureGroups;
335 featureGraph.getFeatureGroups(featureGroups);
331 for (unsigned int i=0; i<featureGroups.size(); ++i) { 336 for (unsigned int i=0; i<featureGroups.size(); ++i) {
332 trajectoryDB->writeObject(savedObjectId, featureGroups[i], -1, 1, string("objects"), string("objects_features")); 337 vector<unsigned int> featureNumbers;
338 for (unsigned int j=0; j<featureGroups[i].size(); ++j)
339 featureNumbers.push_back(featureGroups[i][j]->getId());
340 trajectoryDB->writeObject(savedObjectId, featureNumbers, -1, 1, string("objects"), string("objects_features"));
333 savedObjectId++; 341 savedObjectId++;
334 } 342 }
335 343
336 trajectoryDB->endTransaction(); 344 trajectoryDB->endTransaction();
337 trajectoryDB->disconnect(); 345 trajectoryDB->disconnect();