[−][src]Module cv_core::geom
This module contains functions to perform various geometric algorithms.
Triangulation of a point with a given camera transformation
In this problem we have a [RelativeCameraPose
] and two NormalizedKeyPoint
.
We want to find the point of intersection from the two cameras in camera A's space.
p
the point we are trying to triangulatea
the normalized keypoint on camera Ab
the normalized keypoint on camera BO
the optical center of a camera@
the virtual image plane
@
@
p--------b--------O
/ @
/ @
/ @
/ @
@@@@@@@a@@@@@
/
/
/
O
//! Solutions to this problem:
- [
triangulate_dlt
]
Translation along a bearing given one prior depth
This problem consumes a direction to translate along, a from
CameraPoint
,
and a to
NormalizedKeyPoint
coordinate.
t
thetranslation
bearing vectora
thefrom
pointb
theto
epipolar pointO
the optical center@
the virtual image plane
t<---a
/
/
@@@b@@@/@@@@@
| /
| /
|/
O
The from
coordinate is the relative 3d coordinate in camera space before translation.
The to
coordinate is just a normalized keypoint that we wish to find the optimal translation
to reproject as close as possible to.
The translation
is a vector which will be scaled (multiplied) by the return value to
get the actual 3d translation to move from from
to to
in 3d space.
Solutions to this problem:
It is recommended to use triangulate_bearing_reproject
, as it is incredibly cheap to compute.
Functions
make_one_pose_dlt_triangulator | This solves the point triangulation problem using Algorithm 12 from "Multiple View Geometry in Computer Vision". |
triangulate_bearing_intersection | This solves the translation along a bearing triangulation assuming that there is a perfect intersection. |
triangulate_bearing_reproject | This solves the translation along a bearing triangulation by minimizing the reprojection error. |