OpenGV
A library for solving calibrated central and non-central geometric vision problems
opengv::absolute_pose Namespace Reference

The namespace for the absolute pose methods. More...

Classes

class  AbsoluteAdapterBase
 
class  AbsoluteMultiAdapterBase
 
class  CentralAbsoluteAdapter
 
class  MACentralAbsolute
 
class  MANoncentralAbsolute
 
class  NoncentralAbsoluteAdapter
 
class  NoncentralAbsoluteMultiAdapter
 

Functions

translation_t p2p (const AbsoluteAdapterBase &adapter, const std::vector< int > &indices)
 Compute the pose of a central viewpoint with known rotation using two point correspondences. More...
 
translation_t p2p (const AbsoluteAdapterBase &adapter, size_t index0=0, size_t index1=1)
 Compute the pose of a central viewpoint with known rotation using two point correspondences. More...
 
transformations_t p3p_kneip (const AbsoluteAdapterBase &adapter, const std::vector< int > &indices)
 Compute the pose of a central viewpoint using three point correspondences and Kneip's method [1]. More...
 
transformations_t p3p_kneip (const AbsoluteAdapterBase &adapter, size_t index0=0, size_t index1=1, size_t index2=2)
 Compute the pose of a central viewpoint using three point correspondences and Kneip's method [1]. More...
 
transformations_t p3p_gao (const AbsoluteAdapterBase &adapter, const std::vector< int > &indices)
 Compute the pose of a central viewpoint using three point correspondences and Gao's method [2]. More...
 
transformations_t p3p_gao (const AbsoluteAdapterBase &adapter, size_t index0=0, size_t index1=1, size_t index2=2)
 Compute the pose of a central viewpoint using three point correspondences and Gao's method [2]. More...
 
transformations_t gp3p (const AbsoluteAdapterBase &adapter, const std::vector< int > &indices)
 Compute the pose of a non-central viewpoint using three point correspondences and Kneip's method [3]. More...
 
transformations_t gp3p (const AbsoluteAdapterBase &adapter, size_t index0=0, size_t index1=1, size_t index2=2)
 Compute the pose of a non-central viewpoint using three point correspondences and Kneip's method [3]. More...
 
transformation_t epnp (const AbsoluteAdapterBase &adapter)
 Compute the pose of a central viewpoint using the EPnP method [4]. Using all available correspondences. More...
 
transformation_t epnp (const AbsoluteAdapterBase &adapter, const std::vector< int > &indices)
 Compute the pose of a central viewpoint using the EPnP method [4]. More...
 
transformation_t gpnp (const AbsoluteAdapterBase &adapter)
 Compute the pose of a non-central viewpoint using the gPnP method [3]. Using all available correspondences. More...
 
transformation_t gpnp (const AbsoluteAdapterBase &adapter, const std::vector< int > &indices)
 Compute the pose of a non-central viewpoint using the gPnP method [3]. More...
 
transformations_t upnp (const AbsoluteAdapterBase &adapter)
 Compute the poses of a non-central viewpoint using the uPnP method. Using all available correspondences. More...
 
transformations_t upnp (const AbsoluteAdapterBase &adapter, const std::vector< int > &indices)
 Compute the poses of a non-central viewpoint using the uPnP method. More...
 
transformation_t optimize_nonlinear (const AbsoluteAdapterBase &adapter)
 Compute the pose of a viewpoint using nonlinear optimization. Using all available correspondences. Works for central and non-central case. More...
 
transformation_t optimize_nonlinear (const AbsoluteAdapterBase &adapter, const std::vector< int > &indices)
 Compute the pose of a viewpoint using nonlinear optimization. Works for central and non-central viewpoints. More...
 

Detailed Description

The namespace for the absolute pose methods.

Function Documentation

transformation_t opengv::absolute_pose::epnp ( const AbsoluteAdapterBase adapter)

Compute the pose of a central viewpoint using the EPnP method [4]. Using all available correspondences.

Parameters
[in]adapterVisitor holding bearing vector to world point correspondences.
Returns
Pose of viewpoint (position seen from world frame and orientation from viewpoint to world frame, transforms points from viewpoint to world frame).
transformation_t opengv::absolute_pose::epnp ( const AbsoluteAdapterBase adapter,
const std::vector< int > &  indices 
)

Compute the pose of a central viewpoint using the EPnP method [4].

Parameters
[in]adapterVisitor holding bearing vector to world point correspondences.
[in]indicesIndices of the n correspondences that are used for deriving the pose.
Returns
Pose of viewpoint (position seen from world frame and orientation from viewpoint to world frame, transforms points from viewpoint to world frame).
transformations_t opengv::absolute_pose::gp3p ( const AbsoluteAdapterBase adapter,
const std::vector< int > &  indices 
)

Compute the pose of a non-central viewpoint using three point correspondences and Kneip's method [3].

Parameters
[in]adapterVisitor holding bearing vector to world point correspondences, plus the multi-camera configuration.
[in]indicesIndices of the three correspondences that are used for deriving the pose.
Returns
Poses of viewpoint (position seen from world frame and orientation from viewpoint to world frame, transforms points from viewpoint to world frame, maximum 8 solutions).
transformations_t opengv::absolute_pose::gp3p ( const AbsoluteAdapterBase adapter,
size_t  index0 = 0,
size_t  index1 = 1,
size_t  index2 = 2 
)

Compute the pose of a non-central viewpoint using three point correspondences and Kneip's method [3].

Parameters
[in]adapterVisitor holding bearing vector to world point correspondences, plus the multi-camera configuration.
[in]index0Index of the first correspondence used for deriving the pose (use default value if only three correspondences provided anyway).
[in]index1Index of the second correspondence used for deriving the pose (use default value if only three correspondences provided anyway).
[in]index2Index of the third correspondence used for deriving the pose (use default value if only three correspondences provided anyway).
Returns
Poses of viewpoint (position seen from world frame and orientation from viewpoint to world frame, transforms points from viewpoint to world frame, maximum 8 solutions).
transformation_t opengv::absolute_pose::gpnp ( const AbsoluteAdapterBase adapter)

Compute the pose of a non-central viewpoint using the gPnP method [3]. Using all available correspondences.

Parameters
[in]adapterVisitor holding bearing vector to world point correspondences, plus the multi-camera configuration.
Returns
Pose of viewpoint (position seen from world frame and orientation from viewpoint to world frame, transforms points from viewpoint to world frame).
transformation_t opengv::absolute_pose::gpnp ( const AbsoluteAdapterBase adapter,
const std::vector< int > &  indices 
)

Compute the pose of a non-central viewpoint using the gPnP method [3].

Parameters
[in]adapterVisitor holding bearing vector to world point correspondences, plus the multi-camera configuration.
[in]indicesIndices of the n correspondences that are used for deriving the pose.
Returns
Pose of viewpoint (position seen from world frame and orientation from viewpoint to world frame, transforms points from viewpoint to world frame).
transformation_t opengv::absolute_pose::optimize_nonlinear ( const AbsoluteAdapterBase adapter)

Compute the pose of a viewpoint using nonlinear optimization. Using all available correspondences. Works for central and non-central case.

Parameters
[in]adapterVisitor holding bearing vector to world point correspondences, the multi-camera configuration, plus the initial values.
Returns
Pose of viewpoint (position seen from world frame and orientation from viewpoint to world frame, transforms points from viewpoint to world frame).
transformation_t opengv::absolute_pose::optimize_nonlinear ( const AbsoluteAdapterBase adapter,
const std::vector< int > &  indices 
)

Compute the pose of a viewpoint using nonlinear optimization. Works for central and non-central viewpoints.

Parameters
[in]adapterVisitor holding bearing vector to world point correspondences, the multi-camera configuration, plus the initial values.
[in]indicesIndices of the n correspondences that are used for deriving the pose.
Returns
Pose of viewpoint (position seen from world frame and orientation from viewpoint to world frame, transforms points from viewpoint to world frame).
translation_t opengv::absolute_pose::p2p ( const AbsoluteAdapterBase adapter,
const std::vector< int > &  indices 
)

Compute the pose of a central viewpoint with known rotation using two point correspondences.

Parameters
[in]adapterVisitor holding bearing vectors, world points, and known rotation.
[in]indicesIndices of the two correspondences that are used for deriving the translation.
Returns
The position of the viewpoint seen from the world frame.
translation_t opengv::absolute_pose::p2p ( const AbsoluteAdapterBase adapter,
size_t  index0 = 0,
size_t  index1 = 1 
)

Compute the pose of a central viewpoint with known rotation using two point correspondences.

Parameters
[in]adapterVisitor holding bearing vectors, world points, and known rotation.
[in]index0Index of the first correspondence used for deriving the translation (use default value if only two vectors provided by the visitor anyway).
[in]index1Index of the second correspondence used for deriving the translation (use default value if only two vectors provided by the visitor anyway).
Returns
The position of the viewpoint seen from the world frame.
transformations_t opengv::absolute_pose::p3p_gao ( const AbsoluteAdapterBase adapter,
const std::vector< int > &  indices 
)

Compute the pose of a central viewpoint using three point correspondences and Gao's method [2].

Parameters
[in]adapterVisitor holding bearing vector to world point correspondences.
[in]indicesIndices of the three correspondences that are used for deriving the pose.
Returns
Poses of viewpoint (position seen from world frame and orientation from viewpoint to world frame, transforms points from viewpoint to world frame, maximum 4 solutions).
transformations_t opengv::absolute_pose::p3p_gao ( const AbsoluteAdapterBase adapter,
size_t  index0 = 0,
size_t  index1 = 1,
size_t  index2 = 2 
)

Compute the pose of a central viewpoint using three point correspondences and Gao's method [2].

Parameters
[in]adapterVisitor holding bearing vector to world point correspondences.
[in]index0Index of the first correspondence used for deriving the pose (use default value if only three correspondences provided anyway).
[in]index1Index of the second correspondence used for deriving the pose (use default value if only three correspondences provided anyway).
[in]index2Index of the third correspondence used for deriving the pose (use default value if only three correspondences provided anyway).
Returns
Poses of viewpoint (position seen from world frame and orientation from viewpoint to world frame, transforms points from viewpoint to world frame, maximum 4 solutions).
transformations_t opengv::absolute_pose::p3p_kneip ( const AbsoluteAdapterBase adapter,
const std::vector< int > &  indices 
)

Compute the pose of a central viewpoint using three point correspondences and Kneip's method [1].

Parameters
[in]adapterVisitor holding bearing vector to world point correspondences.
[in]indicesIndices of the three correspondences that are used for deriving the pose.
Returns
Poses of viewpoint (position seen from world frame and orientation from viewpoint to world frame, transforms points from viewpoint to world, frame, maximum 4 solutions).
transformations_t opengv::absolute_pose::p3p_kneip ( const AbsoluteAdapterBase adapter,
size_t  index0 = 0,
size_t  index1 = 1,
size_t  index2 = 2 
)

Compute the pose of a central viewpoint using three point correspondences and Kneip's method [1].

Parameters
[in]adapterVisitor holding bearing vector to world point correspondences.
[in]index0Index of the first correspondence used for deriving the pose (use default value if only three correspondences provided anyway).
[in]index1Index of the second correspondence used for deriving the pose (use default value if only three correspondences provided anyway).
[in]index2Index of the third correspondence used for deriving the pose (use default value if only three correspondences provided anyway).
Returns
Poses of viewpoint (position seen from world frame and orientation from viewpoint to world frame, transforms points from viewpoint to world frame, maximum 4 solutions).
transformations_t opengv::absolute_pose::upnp ( const AbsoluteAdapterBase adapter)

Compute the poses of a non-central viewpoint using the uPnP method. Using all available correspondences.

Parameters
[in]adapterVisitor holding bearing vector to world point correspondences, plus the multi-camera configuration.
Returns
Poses of viewpoint (position seen from world frame and orientation from viewpoint to world frame, transforms points from viewpoint to world frame).
transformations_t opengv::absolute_pose::upnp ( const AbsoluteAdapterBase adapter,
const std::vector< int > &  indices 
)

Compute the poses of a non-central viewpoint using the uPnP method.

Parameters
[in]adapterVisitor holding bearing vector to world point correspondences, plus the multi-camera configuration.
[in]indicesIndices of the n correspondences that are used for deriving the pose.
Returns
Poses of viewpoint (position seen from world frame and orientation from viewpoint to world frame, transforms points from viewpoint to world frame).