Class TriangulateMetricLinearDLT

java.lang.Object
boofcv.alg.geo.triangulate.TriangulateMetricLinearDLT

public class TriangulateMetricLinearDLT extends Object

Triangulates the location of a 3D point given two or more views of the point using the Discrete Linear Transform (DLT). Modified to work only with a calibrated camera. The second singular value is checked to see if a solution was possible.

[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

    • TriangulateMetricLinearDLT

      public TriangulateMetricLinearDLT()
  • Method Details

    • triangulate

      public GeometricResult triangulate(List<Point2D_F64> observations, List<Se3_F64> worldToView, Point4D_F64 found)

      Given N observations of the same point from N views and a known pose of each view in the world reference frame, triangulate the point's position in the world reference frame.

      Modification of [1] to be less generic and use calibrated cameras.

      Parameters:
      observations - Observation in each view in normalized coordinates. Not modified.
      worldToView - Transformations from world to the view. Not modified.
      found - (Output) 3D point in homogenous coordinates in world reference frame. Modified.
    • triangulate

      public GeometricResult triangulate(Point2D_F64 a, Point2D_F64 b, Se3_F64 fromAtoB, Point4D_F64 foundInA)

      Given two 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.

      Modification of [1] to be less generic and use calibrated cameras.

      Parameters:
      a - Observation 'a' in normalized coordinates. Not modified.
      b - Observation 'b' in normalized coordinates. Not modified.
      fromAtoB - Transformation from camera view 'a' to 'b' Not modified.
      foundInA - Output, the found 3D position of the point in 'a' reference frame. Modified.
    • triangulateP

      public GeometricResult triangulateP(List<Point3D_F64> observations, List<Se3_F64> worldToView, Point4D_F64 found)

      Given N observations of the same point from N views and a known pose of each view in the world reference frame, triangulate the point's position in the world reference frame.

      Modification of [1] to be less generic and use calibrated cameras.

      Parameters:
      observations - Observation in each view in 3d pointing vectors. Not modified.
      worldToView - Transformations from world to the view. Not modified.
      found - (Output) 3D point in homogenous coordinates in world reference frame. Modified.
    • triangulateP

      public GeometricResult triangulateP(Point3D_F64 a, Point3D_F64 b, Se3_F64 fromAtoB, Point4D_F64 foundInA)

      Given two 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.

      Modification of [1] to use 3D vectors instead of normalized image coordinates.

      Parameters:
      a - Observation 'a' as a 3d pointing vector. Not modified.
      b - Observation 'b' as a 3d pointing vector. Not modified.
      fromAtoB - Transformation from camera view 'a' to 'b' Not modified.
      foundInA - Output, the found 3D position of the point in 'a' reference frame. Modified.