Mercurial Hosting > traffic-intelligence
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(); |