diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2013-05-09 20:38:43 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2013-05-09 20:38:43 +0400 |
commit | 4f5f97254c06e0043b34df9a689dc45899c011cc (patch) | |
tree | 4f3c11d4a59a08f5ffc5a925eb23d3706d52d2c1 /extern/libmv/libmv-capi.cpp | |
parent | 522eeaa6a0cd41f9193e42afb1907743101810c9 (diff) |
Reconstructed scene scale ambiguity improvement
Made it so reconstructed scene always scaled in a way
that variance of camera centers is unity.
This solves "issues" when different keyframes will
give the same reprojection error but will give scenes
with different.scale, which could easily have been
considered as a bad keyframe combination.
This change is essential for automatic keyframe
selection algorithm to work reliable for user.
Diffstat (limited to 'extern/libmv/libmv-capi.cpp')
-rw-r--r-- | extern/libmv/libmv-capi.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/extern/libmv/libmv-capi.cpp b/extern/libmv/libmv-capi.cpp index b9ca4c12535..0f2ebc50384 100644 --- a/extern/libmv/libmv-capi.cpp +++ b/extern/libmv/libmv-capi.cpp @@ -46,6 +46,7 @@ #include "libmv/simple_pipeline/pipeline.h" #include "libmv/simple_pipeline/camera_intrinsics.h" #include "libmv/simple_pipeline/modal_solver.h" +#include "libmv/simple_pipeline/reconstruction_scale.h" #include <stdlib.h> #include <assert.h> @@ -553,6 +554,9 @@ libmv_Reconstruction *libmv_solveReconstruction(libmv_Tracks *libmv_tracks, progress_update_callback, callback_customdata); } + /* set reconstruction scale to unity */ + libmv::EuclideanScaleToUnity(reconstruction); + /* finish reconstruction */ finishReconstruction(tracks, camera_intrinsics, libmv_reconstruction, progress_update_callback, callback_customdata); |