[][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 triangulate
  • a the normalized keypoint on camera A
  • b the normalized keypoint on camera B
  • O 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 the translation bearing vector
  • a the from point
  • b the to epipolar point
  • O 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.