[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60217] branches/soc-2013-motion_track/ extern/libmv/libmv/simple_pipeline: Allow empty intrinsics vector for bundle adjustment

Joseph Mansfield sftrabbit at gmail.com
Wed Sep 18 11:25:08 CEST 2013


Revision: 60217
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60217
Author:   sftrabbit
Date:     2013-09-18 09:25:07 +0000 (Wed, 18 Sep 2013)
Log Message:
-----------
Allow empty intrinsics vector for bundle adjustment

If an intrinsics vector is passed to the bundle adjuster with size less than the number of cameras, the vector is padded out to that size with empty intrinsics.

Modified Paths:
--------------
    branches/soc-2013-motion_track/extern/libmv/libmv/simple_pipeline/bundle.cc
    branches/soc-2013-motion_track/extern/libmv/libmv/simple_pipeline/keyframe_selection.cc

Modified: branches/soc-2013-motion_track/extern/libmv/libmv/simple_pipeline/bundle.cc
===================================================================
--- branches/soc-2013-motion_track/extern/libmv/libmv/simple_pipeline/bundle.cc	2013-09-18 05:20:43 UTC (rev 60216)
+++ branches/soc-2013-motion_track/extern/libmv/libmv/simple_pipeline/bundle.cc	2013-09-18 09:25:07 UTC (rev 60217)
@@ -394,7 +394,7 @@
                      EuclideanReconstruction *reconstruction) {
   BundleOptions bundle_options;
 
-  std::vector<CameraIntrinsics> empty_intrinsics(tracks.MaxCamera()+1);
+  std::vector<CameraIntrinsics> empty_intrinsics;
   EuclideanBundleCommonIntrinsics(tracks,
                                   bundle_options,
                                   reconstruction,
@@ -406,7 +406,7 @@
   BundleOptions bundle_options;
   bundle_options.constraints = libmv::BUNDLE_NO_TRANSLATION;
 
-  std::vector<CameraIntrinsics> empty_intrinsics(tracks.MaxCamera()+1);
+  std::vector<CameraIntrinsics> empty_intrinsics;
   EuclideanBundleCommonIntrinsics(tracks,
                                   bundle_options,
                                   reconstruction,
@@ -424,6 +424,11 @@
   //LG << "Original intrinsics: " << *intrinsics;
   vector<Marker> markers = tracks.AllMarkers();
 
+  int num_cameras = tracks.MaxCamera() + 1;
+  if (intrinsics.size() < num_cameras) {
+    intrinsics.resize(num_cameras);
+  }
+
   ceres::Problem::Options problem_options;
   ceres::Problem problem(problem_options);
 

Modified: branches/soc-2013-motion_track/extern/libmv/libmv/simple_pipeline/keyframe_selection.cc
===================================================================
--- branches/soc-2013-motion_track/extern/libmv/libmv/simple_pipeline/keyframe_selection.cc	2013-09-18 05:20:43 UTC (rev 60216)
+++ branches/soc-2013-motion_track/extern/libmv/libmv/simple_pipeline/keyframe_selection.cc	2013-09-18 09:25:07 UTC (rev 60217)
@@ -502,7 +502,7 @@
       success_intersects_factor_best = success_intersects_factor;
 
       Tracks two_frames_tracks(tracked_markers);
-      std::vector<CameraIntrinsics> empty_intrinsics(tracks.MaxCamera()+1);
+      std::vector<CameraIntrinsics> empty_intrinsics;
       BundleEvaluation evaluation;
       evaluation.evaluate_jacobian = true;
 




More information about the Bf-blender-cvs mailing list