$extrastylesheet
Namespaces | |
| namespace | impl |
Functions | |
| template<typename P , typename F > | |
| std::pair< algebra::quat, mln_vec(P)> | icp (const p_array< P > &P_, const p_array< P > &X, const F &closest_point, const algebra::quat &initial_rot, const mln_vec(P)&initial_translation) |
| template<typename P , typename F > | |
| composed< translation< P::dim, float >, rotation< P::dim, float > > | icp (const p_array< P > &P_, const p_array< P > &X, const F &closest_point) |
Namespace of registrationional routines.
| std::pair<algebra::quat,mln_vec(P)> mln::registration::icp | ( | const p_array< P > & | P_, |
| const p_array< P > & | X, | ||
| const F & | closest_point, | ||
| const algebra::quat & | initial_rot, | ||
| const mln_vec(P)& | initial_translation | ||
| ) |
Register point in c using a function of closest points closest_point. This overload allows to specify initial transformations.
| [in] | P_ | The cloud of points. |
| [in] | X | the reference surface. |
| [in] | closest_point | The function of closest points. |
| [in] | initial_rot | An initial rotation. |
| [in] | initial_translation | An initial translation. |
WARNING: the function closest_point MUST take float/double vector as arguments. Otherwise the resulting transformation may be wrong due to the truncation of the vector coordinate values.
P_ and X must not be empty.This implementation is based on besl1992pami.
| composed< translation<P::dim,float>,rotation<P::dim,float> > mln::registration::icp | ( | const p_array< P > & | P_, |
| const p_array< P > & | X, | ||
| const F & | closest_point | ||
| ) |
Register point in c using a function of closest points closest_point.
| [in] | P_ | The cloud of points. |
| [in] | X | the reference surface. |
| [in] | closest_point | The function of closest points. |