Developer Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
ICP Namespace Reference

Namespace for ICP. More...

Functions

template<typename VectorT >
VectorT center_of_gravity (const std::vector< VectorT > &_points)
 
template<typename VectorT , typename QuaternionT >
void icp (const std::vector< VectorT > &_points1, const std::vector< VectorT > &_points2, VectorT &_cog1, VectorT &_cog2, double &_scale1, double &_scale2, QuaternionT &_rotation)
 Compute rigid transformation from first point set to second point set. More...
 
template<typename VectorT , typename QuaternionT >
void icp (const std::vector< VectorT > &_points1, const std::vector< VectorT > &_points2, VectorT &_cog1, VectorT &_cog2, QuaternionT &_rotation)
 Compute rigid transformation from first point set to second point set without scaling. More...
 

Detailed Description

Namespace for ICP.

Function Documentation

template<typename VectorT , typename QuaternionT >
void ICP::icp ( const std::vector< VectorT > &  _points1,
const std::vector< VectorT > &  _points2,
VectorT _cog1,
VectorT _cog2,
double &  _scale1,
double &  _scale2,
QuaternionT &  _rotation 
)

Compute rigid transformation from first point set to second point set.

Compute ICP Parameters ( No iteration is done ) Points are unchanged, only parameters are computed.

To transform pointset 1 into pointset 2 do the folowing:

  • substract cog1 from pointset 1
  • scale points with 1/scale1
  • rotate with given rotation
  • scale with scale2
  • add cog2
    Parameters
    _points1first set of points
    _points2second set of points
    _cog1center of gravity first point set
    _cog2center of gravity second point set
    _scale1scaling factor of first point set
    _scale2scaling factor of second point set
    _rotationRotation between point sets ( rotation(_points1) -> _points2

Definition at line 91 of file ICP.cc.

template<typename VectorT , typename QuaternionT >
void ICP::icp ( const std::vector< VectorT > &  _points1,
const std::vector< VectorT > &  _points2,
VectorT _cog1,
VectorT _cog2,
QuaternionT &  _rotation 
)

Compute rigid transformation from first point set to second point set without scaling.

Compute ICP Parameters ( No iteration is done ) Points are unchanged, only parameters are computed.

To transform pointset 1 into pointset 2 do the folowing:

  • substract cog1 from pointset 1
  • rotate with given rotation
  • add cog2
    Parameters
    _points1first set of points
    _points2second set of points
    _cog1center of gravity first point set
    _cog2center of gravity second point set
    _rotationRotation between point sets ( rotation(_points1) -> _points2

Definition at line 191 of file ICP.cc.