Page MenuHome

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


Originally from:

What steps will reproduce the problem?

  Path: libmv\src\libmv\multiview\
  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];



Event Timeline

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