comparison c/feature-based-tracking.cpp @ 191:0e60a306d324

added basic code to identify features and save them (crash)
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Thu, 08 Dec 2011 18:32:35 -0500
parents 1116f0a1ff31
children a728fce85881
comparison
equal deleted inserted replaced
190:36968a63efe1 191:0e60a306d324
263 263
264 trajectoryDB->createViewInstants(); 264 trajectoryDB->createViewInstants();
265 int maxTrajectoryLength; 265 int maxTrajectoryLength;
266 trajectoryDB->maxTrajectoryLength(maxTrajectoryLength); 266 trajectoryDB->maxTrajectoryLength(maxTrajectoryLength);
267 cout << "max trajectory length " << maxTrajectoryLength << endl; 267 cout << "max trajectory length " << maxTrajectoryLength << endl;
268 268 maxTrajectoryLength = 20; // for tests
269 FeatureGraph featureGraph(params.mmConnectionDistance, params.mmSegmentationDistance, params.minFeatureTime); 269
270 FeatureGraph featureGraph(params.mmConnectionDistance, params.mmSegmentationDistance, params.minFeatureTime, params.minNFeaturesPerGroup);
270 271
271 // main loop 272 // main loop
272 // TODO version that can be interrupted? 273 // TODO version that can be interrupted?
273 for (int frameNum = params.frame1; ((frameNum-params.frame1 < params.nFrames) || (params.nFrames < 0)); frameNum++) { 274 for (int frameNum = params.frame1; ((frameNum-params.frame1 < params.nFrames) || (params.nFrames < 0)); frameNum++) {
274 vector<int> trajectoryIds; 275 vector<int> trajectoryIds;
284 // cout << ft->getFirstInstant() << " " << ft->getLastInstant() << endl; 285 // cout << ft->getFirstInstant() << " " << ft->getLastInstant() << endl;
285 featureGraph.addFeature(ft); 286 featureGraph.addFeature(ft);
286 } 287 }
287 288
288 // check for connected components that are old enough (no chance to match with trajectories to be added later 289 // check for connected components that are old enough (no chance to match with trajectories to be added later
290 // we could check only when some features are getting old enough?
289 if (frameNum%10 == 0) { 291 if (frameNum%10 == 0) {
290 featureGraph.connectedComponents(frameNum-maxTrajectoryLength+params.minFeatureTime); 292 vector<vector<FeatureGraph::vertex_descriptor> > objects = featureGraph.connectedComponents(frameNum-maxTrajectoryLength+params.minFeatureTime);
293 cout << objects.size() << " objects" << endl;
294
295 if (!objects.empty()) {
296 vector<vector<unsigned int> > featureGroups = featureGraph.getFeatureGroups(objects);
297 }
291 } 298 }
292 299
293 cout << featureGraph.informationString() << endl; 300 cout << featureGraph.informationString() << endl;
294 } 301 }
295 302