diff 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
line wrap: on
line diff
--- a/c/feature-based-tracking.cpp	Thu Jul 25 16:01:12 2013 -0400
+++ b/c/feature-based-tracking.cpp	Thu Jul 25 18:58:55 2013 -0400
@@ -314,9 +314,13 @@
     int lastInstant = frameNum+params.minFeatureTime-maxTrajectoryLength;
     if (lastInstant > 0 && frameNum%10==0) {
       featureGraph.connectedComponents(lastInstant);
-      vector<vector<unsigned int> > featureGroups = featureGraph.getFeatureGroups();
+      vector<vector<FeatureTrajectoryPtr> > featureGroups;
+      featureGraph.getFeatureGroups(featureGroups);
       for (unsigned int i=0; i<featureGroups.size(); ++i) {
-	trajectoryDB->writeObject(savedObjectId, featureGroups[i], -1, 1, string("objects"), string("objects_features"));
+	vector<unsigned int> featureNumbers;
+	for (unsigned int j=0; j<featureGroups[i].size(); ++j)
+	  featureNumbers.push_back(featureGroups[i][j]->getId());
+	trajectoryDB->writeObject(savedObjectId, featureNumbers, -1, 1, string("objects"), string("objects_features"));
 	savedObjectId++;
       }
     }
@@ -327,9 +331,13 @@
 
   // save remaining objects
   featureGraph.connectedComponents(frameNum+maxTrajectoryLength+1);
-  vector<vector<unsigned int> > featureGroups = featureGraph.getFeatureGroups();
+  vector<vector<FeatureTrajectoryPtr> > featureGroups;
+  featureGraph.getFeatureGroups(featureGroups);
   for (unsigned int i=0; i<featureGroups.size(); ++i) {
-    trajectoryDB->writeObject(savedObjectId, featureGroups[i], -1, 1, string("objects"), string("objects_features"));
+    vector<unsigned int> featureNumbers;
+    for (unsigned int j=0; j<featureGroups[i].size(); ++j)
+      featureNumbers.push_back(featureGroups[i][j]->getId());
+    trajectoryDB->writeObject(savedObjectId, featureNumbers, -1, 1, string("objects"), string("objects_features"));
     savedObjectId++;
   }