cpd
0.5.1
Coherent Point Drift: C++ library for point set registration
|
Generic coherent point drift transform. More...
#include <transform.hpp>
Public Member Functions | |
Transform & | correspondence (bool correspondence) |
Sets whether the correspondence vector will be computed. More... | |
Transform & | gauss_transform (std::unique_ptr< GaussTransform > gauss_transform) |
Sets the gauss transform. More... | |
Transform & | max_iterations (double max_iterations) |
Sets the max iterations for this transform. More... | |
Transform & | normalize (bool normalize) |
Sets whether to normalize the points before running cpd. More... | |
Transform & | outliers (double outliers) |
Sets the outlier tolerance. More... | |
Transform & | sigma2 (double sigma2) |
Sets the sigma2 value for this transform. More... | |
Transform & | tolerance (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... | |
Generic coherent point drift transform.
An abstract base class for real transforms, e.g. Rigid
or Nonrigid
.
|
pure virtual |
Computes one iteration of the transform.
Implemented in cpd::Rigid, cpd::Nonrigid, and cpd::Affine.
|
inline |
Sets whether the correspondence vector will be computed.
|
inline |
Sets the gauss transform.
|
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.
|
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.
|
inline |
Sets the max iterations for this transform.
|
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.
|
inline |
Sets whether to normalize the points before running cpd.
|
inline |
Sets the outlier tolerance.
|
inline |
Runs this transform for the provided matrices.
|
inline |
Sets the sigma2 value for this transform.
|
inline |
Sets the final tolerance.