Class TriangulateProjectiveLinearDLT


public class TriangulateProjectiveLinearDLT
extends Object

Triangulates the location of a 3D point given two or more views of the point using the Discrete Linear Transform (DLT). Works with an uncalibrated camera. Pixel observations and camera projection matrices are input. Works on projective geometry. Normalization is automatically applied each row in the projective matrix.

A geometric test is done using singular values. There should be a fairly obvious null space. If this is not the case then the geometry will be considered bad

[1] Page 312 in R. Hartley, and A. Zisserman, "Multiple View Geometry in Computer Vision", 2nd Ed, Cambridge 2003

  • Field Details

    • singularThreshold

      public double singularThreshold
      used in geometry test
  • Constructor Details

    • TriangulateProjectiveLinearDLT

      public TriangulateProjectiveLinearDLT()
  • Method Details

    • triangulate

      public GeometricResult triangulate​(List<Point2D_F64> observations, List<DMatrixRMaj> cameraMatrices, Point4D_F64 found)

      Given N observations of the same point from two views and a known motion between the two views, triangulate the point's position in camera 'b' reference frame.

      observations - Observation in each view in pixel coordinates. Not modified.
      cameraMatrices - Camera projection matrices, e.g. x = P*X. 3 by 4 projectives. Not modified.
      found - Output, found 3D point in homogenous coordinates. Modified.
      true if triangulation was successful or false if it failed