Page MenuHome

Autocalibration may be fixing the sign of eigenvalues incorrectly
Closed, InvalidPublic

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];
    }        
}

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) edited a custom field.

I'm tempted to close this task, as there is no description of what error occurs or how to reproduce it. @Keir Mierle (keir), @Sergey Sharybin (sergey), is this still a change that should be applied?

Bastien Montagne (mont29) changed the task status from Confirmed to Needs Information from User.Feb 17 2020, 5:08 PM
Ankit Meel (ankitm) closed this task as Invalid.May 2 2020, 8:49 PM
Ankit Meel (ankitm) claimed this task.