cpd  0.5.1
Coherent Point Drift: C++ library for point set registration
Public Member Functions | List of all members
cpd::Transform< Result > Class Template Referenceabstract

Generic coherent point drift transform. More...

#include <transform.hpp>

Public Member Functions

Transformcorrespondence (bool correspondence)
 Sets whether the correspondence vector will be computed. More...
 
Transformgauss_transform (std::unique_ptr< GaussTransform > gauss_transform)
 Sets the gauss transform. More...
 
Transformmax_iterations (double max_iterations)
 Sets the max iterations for this transform. More...
 
Transformnormalize (bool normalize)
 Sets whether to normalize the points before running cpd. More...
 
Transformoutliers (double outliers)
 Sets the outlier tolerance. More...
 
Transformsigma2 (double sigma2)
 Sets the sigma2 value for this transform. More...
 
Transformtolerance (double tolerance)
 Sets the final tolerance. More...
 
Result run (Matrix fixed, Matrix moving)
 Runs this transform for the provided matrices. More...
 
virtual void init (const Matrix &fixed, const Matrix &moving)
 Initialize this transform for the provided matrices. More...
 
virtual void modify_probabilities (Probabilities &probabilities) const
 Modifies Probabilities in some way. More...
 
virtual Result compute_one (const Matrix &fixed, const Matrix &moving, const Probabilities &probabilities, double sigma2) const =0
 Computes one iteration of the transform. More...
 
virtual bool linked () const =0
 Returns true if the normalization should be linked. More...
 

Detailed Description

template<typename Result>
class cpd::Transform< Result >

Generic coherent point drift transform.

An abstract base class for real transforms, e.g. Rigid or Nonrigid.

Member Function Documentation

template<typename Result>
virtual Result cpd::Transform< Result >::compute_one ( const Matrix fixed,
const Matrix moving,
const Probabilities probabilities,
double  sigma2 
) const
pure virtual

Computes one iteration of the transform.

Implemented in cpd::Rigid, cpd::Nonrigid, and cpd::Affine.

template<typename Result>
Transform& cpd::Transform< Result >::correspondence ( bool  correspondence)
inline

Sets whether the correspondence vector will be computed.

template<typename Result>
Transform& cpd::Transform< Result >::gauss_transform ( std::unique_ptr< GaussTransform< Result > >  gauss_transform)
inline

Sets the gauss transform.

template<typename Result>
virtual void cpd::Transform< Result >::init ( const Matrix fixed,
const Matrix moving 
)
inlinevirtual

Initialize this transform for the provided matrices.

This is called before beginning each run, but after normalization. In general, transforms shouldn't need to be initialized, but the nonrigid does.

Reimplemented in cpd::Nonrigid.

template<typename Result>
virtual bool cpd::Transform< Result >::linked ( ) const
pure virtual

Returns true if the normalization should be linked.

No effect if no normalization is applied.

Implemented in cpd::Rigid, cpd::Nonrigid, and cpd::Affine.

template<typename Result>
Transform& cpd::Transform< Result >::max_iterations ( double  max_iterations)
inline

Sets the max iterations for this transform.

template<typename Result>
virtual void cpd::Transform< Result >::modify_probabilities ( Probabilities probabilities) const
inlinevirtual

Modifies Probabilities in some way.

Some types of transform need to tweak the probabilities before moving on with an interation. The default behavior is to do nothing.

Reimplemented in cpd::Nonrigid.

template<typename Result>
Transform& cpd::Transform< Result >::normalize ( bool  normalize)
inline

Sets whether to normalize the points before running cpd.

template<typename Result>
Transform& cpd::Transform< Result >::outliers ( double  outliers)
inline

Sets the outlier tolerance.

template<typename Result>
Result cpd::Transform< Result >::run ( Matrix  fixed,
Matrix  moving 
)
inline

Runs this transform for the provided matrices.

template<typename Result>
Transform& cpd::Transform< Result >::sigma2 ( double  sigma2)
inline

Sets the sigma2 value for this transform.

template<typename Result>
Transform& cpd::Transform< Result >::tolerance ( double  tolerance)
inline

Sets the final tolerance.


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