Milena (Olena)
User documentation 2.0a Id
|
Namespace of "point-wise" expression tools. More...
Classes | |
class | closest_point_basic |
Closest point functor based on map distance. More... | |
class | closest_point_with_map |
Closest point functor based on map distance. More... | |
Functions | |
template<typename P , typename F > | |
algebra::quat | get_rot (const p_array< P > &P_, const vec3d_f &mu_P, const vec3d_f &mu_Yk, const F &closest_point, const algebra::quat &qR, const vec3d_f &qT) |
FIXME: work only for 3d images. | |
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) |
Base version of the ICP algorithm. It is called in other variants. | |
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) |
template<typename P > | |
composed< translation< P::dim, float >, rotation< P::dim, float > > | registration1 (const box< P > &domain, const p_array< P > &P_, const p_array< P > &X) |
Call ICP once and return the resulting transformation. | |
template<typename P > | |
composed< translation< P::dim, float >, rotation< P::dim, float > > | registration2 (const box< P > &domain, const p_array< P > &P_, const p_array< P > &X) |
Call ICP 10 times. | |
template<typename P > | |
composed< translation< P::dim, float >, rotation< P::dim, float > > | registration3 (const box< P > &domain, const p_array< P > &P_, const p_array< P > &X) |
Call ICP 10 times. | |
Namespace of "point-wise" expression tools.
algebra::quat mln::registration::get_rot | ( | const p_array< P > & | P_, |
const vec3d_f & | mu_P, | ||
const vec3d_f & | mu_Yk, | ||
const F & | closest_point, | ||
const algebra::quat & | qR, | ||
const vec3d_f & | qT | ||
) |
FIXME: work only for 3d images.
Definition at line 527 of file icp.hh.
References mln::p_array< P >::nsites().
|
inline |
Base version of the ICP algorithm. It is called in other variants.
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.Reference article: "A Method for Registration of 3-D Shapes", Paul J. Besl and Neil D. McKay, IEEE, 2, February 1992.
Definition at line 612 of file icp.hh.
References mln::geom::bbox(), mln::literal::black, mln::set::compute(), mln::duplicate(), mln::box< P >::enlarge(), mln::data::fill(), mln::literal::green, mln::io::ppm::save(), and mln::literal::white.
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. |
|
inline |
Call ICP once and return the resulting transformation.
Definition at line 325 of file registration.hh.
|
inline |
Call ICP 10 times.
Do the first call to ICP with all sites then work on a subset of which size is decreasing. For each call, a distance criterion is computed on a subset. Sites part of the subset which are too far or too close are removed. Removed sites are NOT reused later in the subset.
Definition at line 345 of file registration.hh.
|
inline |
Call ICP 10 times.
Do the first call to ICP with all sites then work on a subset. For each call, a distance criterion is computed on a subset. A new subset is computed from the whole set of points according to this distance. It will be used in the next call. Removed Sites MAY be reintegrated.
Definition at line 365 of file registration.hh.