Page MenuHome

Autocalibration may be fixing the sign of eigenvalues incorrectly
Open, NormalPublic

Description

Originally from: https://code.google.com/p/libmv/issues/detail?id=32#makechanges

What steps will reproduce the problem?
Reference:

  Path: libmv\src\libmv\multiview\autocalibration.cc
  Lines: 105 to 109 (see below)

// Eigen values should be possitive,
Vec temp_values = eigen_solver.eigenvalues();
if (temp_values.sum() < 0) {
  temp_values = -temp_values;
}

After execution of these lines, I am still finding negative eigen values in temp_values.

What is the expected output? What do you see instead?
If I am not wrong, this should code should replaced with the code given below to ensure non-negative eigen values:

for( int i = 0; i < 4; i++)
{
    if(temp_values[i] < 0){
        temp_values[i] = -temp_values[i];
    }        
}

Details

Type
Bug

Event Timeline

Keir Mierle (keir) raised the priority of this task from to Normal.
Keir Mierle (keir) updated the task description. (Show Details)
Keir Mierle (keir) added a project: Libmv.
Keir Mierle (keir) set Type to Bug.