Class EnforceTrifocalGeometry


public class EnforceTrifocalGeometry
extends Object

Applies geometric constraints to an estimated trifocal tensor. See page 394 in [1].


  • R. Hartley, and A. Zisserman, "Multiple View Geometry in Computer Vision", 2nd Ed, Cambridge 2003
  • Field Details

  • Constructor Details

    • EnforceTrifocalGeometry

      public EnforceTrifocalGeometry()
  • Method Details

    • process

      public void process​(Point3D_F64 e2, Point3D_F64 e3, DMatrixRMaj A)
      Computes a trifocal tensor which minimizes the algebraic error given the two epipoles and the linear constraint matrix. The epipoles are from a previously computed trifocal tensor.
      e2 - Epipole of first image in the second image
      e3 - Epipole of first image in the third image
      A - Linear constraint matrix for trifocal tensor created from image observations.
    • computeErrorVector

      public void computeErrorVector​(DMatrixRMaj A, DMatrixRMaj errors)
      Returns the algebraic error vector. error = A*U*x. length = number of observations
    • extractSolution

      public void extractSolution​(TrifocalTensor tensor)
      Inserts the found trifocal tensor into the provided object.
    • constructE

      protected void constructE​(Point3D_F64 e2, Point3D_F64 e3)
      The matrix E is a linear system for computing the trifocal tensor. The columns are the unknown square matrices from view 2 and 3. The right most column in both projection matrices are the provided epipoles, whose values are inserted into E