Mercurial > hg > nsaunier > 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(); |
