Class TriangulateMetricLinearDLT
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 Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptiontriangulate
(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.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.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.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.
-
Field Details
-
singularThreshold
public double singularThresholdused 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.
-