Image Component Library (ICL)
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
icl::geom::ICP3D Class Reference

The ICP3D class is a special ICP-case for homogeneous 3D-vectors. More...

#include <ICP3D.h>

Inheritance diagram for icl::geom::ICP3D:
icl::utils::Uncopyable

Classes

struct  Result
 The Result struct contains results of an ICP-loop. More...
 

Public Types

typedef icl::math::FixedColVector< icl32f, 4 > ICP3DVec
 

Public Member Functions

 ICP3D (uint32_t const iterations=10, icl32f const max_distance=1.0f, icl64f const errorDelat=0.01f)
 ICP3D Standard constructor. More...
 
void build (std::vector< ICP3DVec > const &target, icl32f const &min, icl32f const &len)
 build creates the octree and saves the target More...
 
void build (std::vector< ICP3DVec > const &target, icl32f const &minX, icl32f const &minY, icl32f const &minZ, icl32f const &width, icl32f const &height, icl32f const &depth)
 build creates the octree and saves the target More...
 
Result apply (std::vector< ICP3DVec > const &source, std::vector< ICP3DVec > &out)
 apply Performs the ICP loop More...
 
Result apply (std::vector< ICP3DVec > const &target, std::vector< ICP3DVec > const &source, std::vector< ICP3DVec > &out, icl32f const &min, icl32f const &len)
 apply Performs the ICP loop More...
 
Result apply (std::vector< ICP3DVec > const &target, std::vector< ICP3DVec > const &source, std::vector< ICP3DVec > &out, icl32f const &minX, icl32f const &minY, icl32f const &minZ, icl32f const &width, icl32f const &height, icl32f const &depth)
 apply Performs the ICP loop More...
 
virtual ~ICP3D ()
 
void setMaxDistance (icl32f const dist)
 
icl32f getMaxDistance ()
 
void setErrorDeltaTh (icl64f const th)
 
icl64f getErrorDeltaTh ()
 
void setMaximumIterations (uint32_t const iterations)
 
uint32_t getMaximumIterations ()
 
std::vector< ICP3DVec > const & getTarget ()
 

Public Attributes

uint32_t maxIterations
 maxIterations Maximum number of iterations More...
 
icl32f maxDist
 maxDist Maximal distance allowed between two corresponding points More...
 
icl64f errorDeltaTh
 errorDeltaTh Threshold for the change of the error between to ICP-steps. If the error changed less than this threshold the ICP-loop converged and the accumulated transformation is returned. More...
 
math::Octree< icl32f, 16, 1, ICP3DVec > * octree
 octree Underlying octree More...
 
std::vector< ICP3DVecm_target
 m_target Target for the ICP steps More...
 

Additional Inherited Members

- Protected Member Functions inherited from icl::utils::Uncopyable
 Uncopyable ()
 Empty base constructor. More...
 

Detailed Description

The ICP3D class is a special ICP-case for homogeneous 3D-vectors.

Member Typedef Documentation

◆ ICP3DVec

Constructor & Destructor Documentation

◆ ICP3D()

icl::geom::ICP3D::ICP3D ( uint32_t const  iterations = 10,
icl32f const  max_distance = 1.0f,
icl64f const  errorDelat = 0.01f 
)

ICP3D Standard constructor.

◆ ~ICP3D()

virtual icl::geom::ICP3D::~ICP3D ( )
virtual

Member Function Documentation

◆ apply() [1/3]

Result icl::geom::ICP3D::apply ( std::vector< ICP3DVec > const &  source,
std::vector< ICP3DVec > &  out 
)

apply Performs the ICP loop

Parameters
sourceThe points to be aligned to the target
outThe result of the alignment (transformed source)
Returns
The result for this ICP run (final transformation,error,iterations)

◆ apply() [2/3]

Result icl::geom::ICP3D::apply ( std::vector< ICP3DVec > const &  target,
std::vector< ICP3DVec > const &  source,
std::vector< ICP3DVec > &  out,
icl32f const &  min,
icl32f const &  len 
)

apply Performs the ICP loop

Parameters
targetTarget points for the ICP steps
sourceThe points to be aligned to the target
outThe result of the alignment (transformed source)
minOctree minimum for all axis
lenOctree length for all axis
Returns
The result for this ICP run (final transformation,error,iterations)

◆ apply() [3/3]

Result icl::geom::ICP3D::apply ( std::vector< ICP3DVec > const &  target,
std::vector< ICP3DVec > const &  source,
std::vector< ICP3DVec > &  out,
icl32f const &  minX,
icl32f const &  minY,
icl32f const &  minZ,
icl32f const &  width,
icl32f const &  height,
icl32f const &  depth 
)

apply Performs the ICP loop

Parameters
targetTarget points for the ICP steps
sourceThe points to be aligned to the target
outThe result of the alignment (transformed source)
minXOctree minimum for the x-axis
minYOctree minimum for the y-axis
minZOctree minimum for the z-axis
widthOctree length for the x-axis
heightOctree length for the y-axis
depthOctree length for the z-axis
Returns
The result for this ICP run (final transformation,error,iterations)

◆ build() [1/2]

void icl::geom::ICP3D::build ( std::vector< ICP3DVec > const &  target,
icl32f const &  min,
icl32f const &  len 
)

build creates the octree and saves the target

Parameters
targetTarget points for the ICP steps
minOctree minimum for all axis
lenOctree length for all axis

◆ build() [2/2]

void icl::geom::ICP3D::build ( std::vector< ICP3DVec > const &  target,
icl32f const &  minX,
icl32f const &  minY,
icl32f const &  minZ,
icl32f const &  width,
icl32f const &  height,
icl32f const &  depth 
)

build creates the octree and saves the target

Parameters
targetTarget points for the ICP steps
minXOctree minimum for the x-axis
minYOctree minimum for the y-axis
minZOctree minimum for the z-axis
widthOctree length for the x-axis
heightOctree length for the y-axis
depthOctree length for the z-axis

◆ getErrorDeltaTh()

icl64f icl::geom::ICP3D::getErrorDeltaTh ( )
inline

◆ getMaxDistance()

icl32f icl::geom::ICP3D::getMaxDistance ( )
inline

◆ getMaximumIterations()

uint32_t icl::geom::ICP3D::getMaximumIterations ( )
inline

◆ getTarget()

std::vector<ICP3DVec> const& icl::geom::ICP3D::getTarget ( )
inline

◆ setErrorDeltaTh()

void icl::geom::ICP3D::setErrorDeltaTh ( icl64f const  th)
inline

◆ setMaxDistance()

void icl::geom::ICP3D::setMaxDistance ( icl32f const  dist)
inline

◆ setMaximumIterations()

void icl::geom::ICP3D::setMaximumIterations ( uint32_t const  iterations)
inline

Member Data Documentation

◆ errorDeltaTh

icl64f icl::geom::ICP3D::errorDeltaTh

errorDeltaTh Threshold for the change of the error between to ICP-steps. If the error changed less than this threshold the ICP-loop converged and the accumulated transformation is returned.

◆ m_target

std::vector<ICP3DVec> icl::geom::ICP3D::m_target

m_target Target for the ICP steps

◆ maxDist

icl32f icl::geom::ICP3D::maxDist

maxDist Maximal distance allowed between two corresponding points

◆ maxIterations

uint32_t icl::geom::ICP3D::maxIterations

maxIterations Maximum number of iterations

◆ octree

math::Octree<icl32f,16,1,ICP3DVec>* icl::geom::ICP3D::octree

octree Underlying octree


The documentation for this class was generated from the following file: