fast::CoherentPointDrift class

Abstract base class for Coherent Point Drift (CPD) registration.

Base classes

class ProcessObject
Abstract base class for all process objects.

Derived classes

class CoherentPointDriftAffine
Affine coherent point drift registration.
class CoherentPointDriftRigid
Rigid coherent point drift registration.

Public types

enum TransformationType { RIGID, AFFINE, NONRIGID }

Constructors, destructors, conversion operators

CoherentPointDrift() protected

Public functions

void setFixedMeshPort(DataChannel::pointer port)
void setFixedMesh(Mesh::pointer data)
void setMovingMeshPort(DataChannel::pointer port)
void setMovingMesh(Mesh::pointer data)
void setMaximumIterations(unsigned char maxIterations)
void setUniformWeight(float uniformWeight)
void setTolerance(double tolerance)
auto getOutputTransformation() -> Transform::pointer
void initializeVarianceAndMore() pure virtual
void expectation(MatrixXf& fixedPoints, MatrixXf& movingPoints)
void maximization(MatrixXf& fixedPoints, MatrixXf& movingPoints) pure virtual

Protected functions

void execute() virtual

Protected variables

MatrixXf mFixedPoints
MatrixXf mMovingPoints
MatrixXf mMovingMeanInitial
MatrixXf mFixedMeanInitial
MatrixXf mResponsibilityMatrix
unsigned int mNumFixedPoints
unsigned int mNumMovingPoints
unsigned int mNumDimensions
float mUniformWeight
double mTolerance
double mScale
double mVariance
double mObjectiveFunction
double mFixedNormalizationScale
double mMovingNormalizationScale
Transform::pointer mTransformation
unsigned char mIteration
bool mRegistrationConverged
double timeE
double timeEDistances
double timeENormal
double timeEPosterior
double timeEPosteriorDivision
double timeM
double timeMUseful
double timeMCenter
double timeMSVD
double timeMParameters
double timeMUpdate