# opentl::core::cvdata::Pose3dProjective Class Reference

Sets 3d projection matrix from parameter vector. ATTENTION: direct transformation from body to screen space (extrinsic+intrinsic!) y=H(p)x. More...

Inherits opentl::core::cvdata::Pose.

List of all members.

## Public Member Functions
virtual Pose3dProjective * | clone () const
virtual int | initFromPoints (const math::Matrix &bodyPoints, const math::Matrix &screenPoints, const math::SquareMatrix &intrinsicMat, const math::Vector *linkIdx=NULL)
| Compute LSE pose (world T matrix) from N object-screen point correspondences (also called "PnP problem").
virtual int | initFromPointsAndLines (const math::Matrix &bodyPoints, const math::Matrix &screenPoints, const math::Matrix &bodyLines, const math::Matrix &screenLines, const math::SquareMatrix &intrinsicMat, const math::Vector *linkIdxForPoint=NULL, const math::Vector *linkIdxForLine=NULL)
| Compute LSE pose (world T matrix) from N1 object-screen point correspondences and N2 line correspondences.
virtual void | initLieAlgGen ()
| Initialize Lie algebra generators for this pose type.
virtual Pose & | operator= (const Pose &value)
| Assignment operator.
virtual Pose3dProjective & | operator= (const Pose3dProjective &value)
| Pose3dProjective (const Pose3dProjective &value)
| Constructor. Initialize object with existing value object.
| Pose3dProjective (opentl::core::cvdata::Pose::T_UPDATEMODE updateMode, std::vector< math::Vector2 > *poseLimits=NULL)
| Default constructor.
void | setDataFromVal (double v0, double v1, double v2, double v3, double v4, double v5, double v6, double v7, double v8, double v9, double v10, double v11)
| Set pose data one by one.
virtual void | updateDataFromLocalT ()
| Set pose by homog. transformation matrix.
virtual void | updateWorldTFromData ()
| Function to get the pose as homog. transformation matrix T.
virtual | ~Pose3dProjective ()
| Destructor.

## Detailed Description

Sets 3d projection matrix from parameter vector. ATTENTION: direct transformation from body to screen space (extrinsic+intrinsic!) y=H(p)x.

In order to be compatible to x in 3d homogeneous coordinates H is 4x4 matrix

|p11+1 p12 p13 p14| P = |p21 p22+1 p23 p24| |p31 p32 p33 1| |0 0 0 1|

Vector[0] = p11 Vector[1] = p21 Vector[2] = p31 Vector[3] = p12 Vector[4] = p22 Vector[5] = p32 Vector[6] = p13 Vector[7] = p23 Vector[8] = p33 Vector[9] = p14 Vector[10] = p24

## Constructor & Destructor Documentation

opentl::core::cvdata::Pose3dProjective::Pose3dProjective | ( | opentl::core::cvdata::Pose::T_UPDATEMODE | updateMode,
|  | std::vector< math::Vector2 > * | poseLimits = `NULL` |
| ) |  |  |

Default constructor.

opentl::core::cvdata::Pose3dProjective::Pose3dProjective | ( | const Pose3dProjective & | value | ) |

Constructor. Initialize object with existing value object.

virtual opentl::core::cvdata::Pose3dProjective::~Pose3dProjective | ( |  | ) | `[inline, virtual]`

Destructor.

## Member Function Documentation

virtual Pose3dProjective* opentl::core::cvdata::Pose3dProjective::clone | ( |  | ) | const`[virtual]`

Implements opentl::core::cvdata::Pose.

virtual int opentl::core::cvdata::Pose3dProjective::initFromPoints | ( | const math::Matrix & | bodyPoints,
|  | const math::Matrix & | screenPoints,
|  | const math::SquareMatrix & | intrinsicMat,
|  | const math::Vector * | linkIdx = `NULL` |
| ) |  |  | `[inline, virtual]`

Compute LSE pose (world T matrix) from N object-screen point correspondences (also called "PnP problem").

Parameters:

  | bodyPoints | Input points in object space (3xN) or (2xN)
  | screenPoints | Input corresponding points in image space (2xN)
  | intrinsicMat | Input camera calibration matrix (3x3)
  | linkIdx | Input Link ID of each point (for articulated Poses only)

Returns:
  Error condition (0 = OK)

Implements opentl::core::cvdata::Pose.

virtual int opentl::core::cvdata::Pose3dProjective::initFromPointsAndLines | ( | const math::Matrix & | bodyPoints,
|  | const math::Matrix & | screenPoints,
|  | const math::Matrix & | bodyLines,
|  | const math::Matrix & | screenLines,
|  | const math::SquareMatrix & | intrinsicMat,
|  | const math::Vector * | linkIdxForPoint = `NULL`,
|  | const math::Vector * | linkIdxForLine = `NULL` |
| ) |  |  | `[inline, virtual]`

Compute LSE pose (world T matrix) from N1 object-screen point correspondences and N2 line correspondences.

Parameters:

  | bodyPoints | Input points in object space (3xN1) or (2xN1)
  | screenPoints | Input corresponding points in image space (2xN1)
  | bodyLines | Input line segments in object space (3x2*N2)
  | screenLines | Input corresponding lines in image space (3xN2 for 2D represantation)
  | intrinsicMat | Input camera calibration matrix (3x3)
  | linkIdxForPoint | Input Link ID of each point (for articulated Poses only)
  | linkIdxForLine | Input Link ID of each line (for articulated Poses only)

Returns:
  Error condition (0 = OK)

Implements opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::Pose3dProjective::initLieAlgGen | ( |  | ) | `[virtual]`

Initialize Lie algebra generators for this pose type.

Implements opentl::core::cvdata::Pose.

virtual Pose& opentl::core::cvdata::Pose3dProjective::operator= | ( | const Pose & | value | ) | `[inline, virtual]`

Assignment operator.

Reimplemented from opentl::core::cvdata::Pose.

virtual Pose3dProjective& opentl::core::cvdata::Pose3dProjective::operator= | ( | const Pose3dProjective & | value | ) | `[inline, virtual]`

void opentl::core::cvdata::Pose3dProjective::setDataFromVal | ( | double | v0,
|  | double | v1,
|  | double | v2,
|  | double | v3,
|  | double | v4,
|  | double | v5,
|  | double | v6,
|  | double | v7,
|  | double | v8,
|  | double | v9,
|  | double | v10,
|  | double | v11 |
| ) |  |  |

Set pose data one by one.

virtual void opentl::core::cvdata::Pose3dProjective::updateDataFromLocalT | ( |  | ) | `[inline, virtual]`

Set pose by homog. transformation matrix.

Parameters:

  | matT |

Implements opentl::core::cvdata::Pose.

virtual void opentl::core::cvdata::Pose3dProjective::updateWorldTFromData | ( |  | ) | `[virtual]`

Function to get the pose as homog. transformation matrix T.

Returns:
  transformation matrix T

Implements opentl::core::cvdata::Pose.