Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'extern/libmv/libmv/simple_pipeline/initialize_reconstruction.cc')
-rw-r--r--extern/libmv/libmv/simple_pipeline/initialize_reconstruction.cc16
1 files changed, 2 insertions, 14 deletions
diff --git a/extern/libmv/libmv/simple_pipeline/initialize_reconstruction.cc b/extern/libmv/libmv/simple_pipeline/initialize_reconstruction.cc
index 246828a644f..14030da6315 100644
--- a/extern/libmv/libmv/simple_pipeline/initialize_reconstruction.cc
+++ b/extern/libmv/libmv/simple_pipeline/initialize_reconstruction.cc
@@ -68,20 +68,8 @@ bool EuclideanReconstructTwoFrames(const vector<Marker> &markers,
NormalizedEightPointSolver(x1, x2, &F);
// The F matrix should be an E matrix, but squash it just to be sure.
- Eigen::JacobiSVD<Mat3> svd(F, Eigen::ComputeFullU | Eigen::ComputeFullV);
-
- // See Hartley & Zisserman page 294, result 11.1, which shows how to get the
- // closest essential matrix to a matrix that is "almost" an essential matrix.
- double a = svd.singularValues()(0);
- double b = svd.singularValues()(1);
- double s = (a + b) / 2.0;
- LG << "Initial reconstruction's rotation is non-euclidean by "
- << (((a - b) / std::max(a, b)) * 100) << "%; singular values:"
- << svd.singularValues().transpose();
-
- Vec3 diag;
- diag << s, s, 0;
- Mat3 E = svd.matrixU() * diag.asDiagonal() * svd.matrixV().transpose();
+ Mat3 E;
+ FundamentalToEssential(F, &E);
// Recover motion between the two images. Since this function assumes a
// calibrated camera, use the identity for K.