Class TriangulateProjectiveLinearDLT
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 Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptiontriangulate
(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.
-
Field Details
-
singularThreshold
public double singularThresholdused 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.
- Parameters:
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.- Returns:
- true if triangulation was successful or false if it failed
-