public void process ( List < DMatrixRMaj > homographies ) { if ( assumeZeroSkew ) { if ( homographies . size ( ) < 2 ) throw new IllegalArgumentException ( "At least two homographies are required. Found " + homographies . size ( ) ) ; } else if ( homographies . size ( ) < 3 ) { throw new IllegalArgumentException ( "At least three homographies are required. Found " + homographies . size ( ) ) ; } if ( assumeZeroSkew ) { setupA_NoSkew ( homographies ) ; if ( ! solverNull . process ( A , 1 , b ) ) throw new RuntimeException ( "SVD failed" ) ; computeParam_ZeroSkew ( ) ; } else { setupA ( homographies ) ; if ( ! solverNull . process ( A , 1 , b ) ) throw new RuntimeException ( "SVD failed" ) ; computeParam ( ) ; } if ( MatrixFeatures_DDRM . hasUncountable ( K ) ) { throw new RuntimeException ( "Failed!" ) ; } }
Given a set of homographies computed from a sequence of images that observe the same plane it estimates the camera s calibration .