Class HelperNister5

java.lang.Object
boofcv.alg.geo.f.HelperNister5

public class HelperNister5
extends Object
Helper class for EssentialNister5. Contains ugly unrolled linear systems. See generate/python/nister5.py for code which created the mess you see below.
  • Constructor Summary

    Constructors
    Constructor Description
    HelperNister5()  
  • Method Summary

    Modifier and Type Method Description
    void extractPolynomial​(double[] coefs)
    Extracts the polynomial coefficients from det(B) where B = [K;L;M] and the columns are variables (x,y,1) see paper for a slightly less confusing description.
    void setDeterminantVectors​(DMatrixRMaj A)
    See equations 11-13 K = E - z*F L = G - z*H M = I - z*J (E,F,G,H,I,J) = x*(z^2 + z + 1) + y*(z^2 + z + 1) + z^3 + z^2 + z + 1
    void setNullSpace​(double[] x, double[] y, double[] z, double[] w)  
    void setupA1​(DMatrixRMaj A)
    Construct 10 by 10 coefficient matrix for the following coefficients 'x^3','y^3','x^2*y','x*y^2','x^2*z','x^2','y^2*z','y^2','x*y*z','x*y'
    void setupA2​(DMatrixRMaj B)
    Construct 10 by 10 coefficient matrix for the following coefficients 'x*z^2','x*z','x','y*z^2','y*z','y','z^3','z^2','z','1'

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • HelperNister5

      public HelperNister5()
  • Method Details

    • setNullSpace

      public void setNullSpace​(double[] x, double[] y, double[] z, double[] w)
    • setupA1

      public void setupA1​(DMatrixRMaj A)
      Construct 10 by 10 coefficient matrix for the following coefficients 'x^3','y^3','x^2*y','x*y^2','x^2*z','x^2','y^2*z','y^2','x*y*z','x*y'
      Parameters:
      A - a 10 by 10 matrix
    • setupA2

      public void setupA2​(DMatrixRMaj B)
      Construct 10 by 10 coefficient matrix for the following coefficients 'x*z^2','x*z','x','y*z^2','y*z','y','z^3','z^2','z','1'
      Parameters:
      B - a 10 by 10 matrix
    • setDeterminantVectors

      public void setDeterminantVectors​(DMatrixRMaj A)
      See equations 11-13 K = E - z*F L = G - z*H M = I - z*J (E,F,G,H,I,J) = x*(z^2 + z + 1) + y*(z^2 + z + 1) + z^3 + z^2 + z + 1
      Parameters:
      A - Solution to linear system
    • extractPolynomial

      public void extractPolynomial​(double[] coefs)
      Extracts the polynomial coefficients from det(B) where B = [K;L;M] and the columns are variables (x,y,1) see paper for a slightly less confusing description. polynomial = coef[0] + z*coef[1] + z^2*coef[2] + z^3*coef[3] ... etc
      Parameters:
      coefs - Array with 11 elements. The index corresponds to the coefficient power.