cpd  0.5.1
Coherent Point Drift: C++ library for point set registration
Classes | Typedefs | Enumerations | Functions | Variables
cpd Namespace Reference

Top-level cpd namespace. More...

Classes

class  Affine
 Affine coherent point drift. More...
 
struct  AffineResult
 The result of a affine coherent point drift run. More...
 
class  GaussTransform
 Abstract base class for Gauss transforms. More...
 
class  GaussTransformDirect
 The direct Gauss transform. More...
 
class  GaussTransformFgt
 The Gauss transform using the fgt library. More...
 
class  Nonrigid
 Nonrigid coherent point drift. More...
 
struct  NonrigidResult
 The result of a nonrigid coherent point drift run. More...
 
struct  Normalization
 The results of normalizing data to a unit cube (or whatever dimensionality). More...
 
struct  Probabilities
 Probability matrices produced by comparing two data sets with a GaussTransform. More...
 
struct  Result
 The result of a generic transform run. More...
 
class  Rigid
 Rigid coherent point drift. More...
 
struct  RigidResult
 The result of a rigid coherent point drift run. More...
 
class  Transform
 Generic coherent point drift transform. More...
 

Typedefs

typedef Eigen::MatrixXd Matrix
 Our base matrix class. More...
 
typedef Eigen::VectorXd Vector
 Typedef for our specific type of vector. More...
 
typedef Eigen::Matrix< Matrix::Index, Eigen::Dynamic, 1 > IndexVector
 Typedef for an index vector, used to index other matrices. More...
 
typedef Eigen::ArrayXd Array
 Typedef for our specific type of array. More...
 

Enumerations

enum  FgtMethod { DirectTree, Ifgt, Switched }
 The method(s) by which the fgt Gauss transform will compute the differences. More...
 

Functions

AffineResult affine (const Matrix &fixed, const Matrix &moving)
 Runs a affine registration on two matrices. More...
 
Matrix apply_transformation_matrix (Matrix points, const Matrix &transform)
 Apply a transformation matrix to a set of points. More...
 
NonrigidResult nonrigid (const Matrix &fixed, const Matrix &moving)
 Runs a nonrigid registration on two matrices. More...
 
RigidResult rigid (const Matrix &fixed, const Matrix &moving)
 Runs a rigid registration on two matrices. More...
 
Matrix matrix_from_path (const std::string &path)
 Loads a matrix from a delimited text file. More...
 
double default_sigma2 (const Matrix &fixed, const Matrix &moving)
 Computes the default sigma2 for the given matrices. More...
 
Matrix affinity (const Matrix &fixed, const Matrix &moving, double beta)
 Computes the affinity matrix between the two matrices. More...
 
const char * version ()
 Returns this library's version. More...
 

Variables

const FgtMethod DEFAULT_FGT_METHOD = FgtMethod::DirectTree
 The default fgt method. More...
 
const double DEFAULT_BREAKPOINT = 0.2
 The default switched fgt breakpoint. More...
 
const double DEFAULT_EPSILON = 1e-4
 The default fgt epsilon. More...
 
const double DEFAULT_BETA = 3.0
 Default value for beta. More...
 
const double DEFAULT_LAMBDA = 3.0
 Default value for lambda. More...
 
const bool DEFAULT_REFLECTIONS = false
 Should rigid registrations allow reflections by default? More...
 
const bool DEFAULT_SCALE = !DEFAULT_LINKED
 Should rigid registrations scale the data by default? More...
 
const size_t DEFAULT_MAX_ITERATIONS = 150
 The default number of iterations allowed. More...
 
const bool DEFAULT_NORMALIZE = true
 Whether points should be normalized by default. More...
 
const double DEFAULT_OUTLIERS = 0.1
 The default outlier weight. More...
 
const double DEFAULT_TOLERANCE = 1e-5
 The default tolerance. More...
 
const double DEFAULT_SIGMA2 = 0.0
 The default sigma2. More...
 
const bool DEFAULT_CORRESPONDENCE = false
 Whether correspondence vector should be computed by default. More...
 
const bool DEFAULT_LINKED = true
 Are the scalings of the two datasets linked by default? More...
 

Detailed Description

Top-level cpd namespace.

Typedef Documentation

typedef Eigen::ArrayXd cpd::Array

Typedef for our specific type of array.

typedef Eigen::Matrix<Matrix::Index, Eigen::Dynamic, 1> cpd::IndexVector

Typedef for an index vector, used to index other matrices.

typedef Eigen::MatrixXd cpd::Matrix

Our base matrix class.

typedef Eigen::VectorXd cpd::Vector

Typedef for our specific type of vector.

Enumeration Type Documentation

The method(s) by which the fgt Gauss transform will compute the differences.

Enumerator
DirectTree 

Use only the direct-tree fgt method.

Ifgt 

Use only the improved fast Gauss transform method.

Switched 

Switch between direct-tree and ifgt at a certain breakpoint.

Function Documentation

AffineResult cpd::affine ( const Matrix fixed,
const Matrix moving 
)

Runs a affine registration on two matrices.

Matrix cpd::affinity ( const Matrix fixed,
const Matrix moving,
double  beta 
)

Computes the affinity matrix between the two matrices.

Matrix cpd::apply_transformation_matrix ( Matrix  points,
const Matrix transform 
)

Apply a transformation matrix to a set of points.

The transformation matrix should be one column wider than the point matrix.

double cpd::default_sigma2 ( const Matrix fixed,
const Matrix moving 
)

Computes the default sigma2 for the given matrices.

Matrix cpd::matrix_from_path ( const std::string &  path)

Loads a matrix from a delimited text file.

NonrigidResult cpd::nonrigid ( const Matrix fixed,
const Matrix moving 
)

Runs a nonrigid registration on two matrices.

RigidResult cpd::rigid ( const Matrix fixed,
const Matrix moving 
)

Runs a rigid registration on two matrices.

const char* cpd::version ( )

Returns this library's version.

Variable Documentation

const double cpd::DEFAULT_BETA = 3.0

Default value for beta.

const double cpd::DEFAULT_BREAKPOINT = 0.2

The default switched fgt breakpoint.

const bool cpd::DEFAULT_CORRESPONDENCE = false

Whether correspondence vector should be computed by default.

const double cpd::DEFAULT_EPSILON = 1e-4

The default fgt epsilon.

const FgtMethod cpd::DEFAULT_FGT_METHOD = FgtMethod::DirectTree

The default fgt method.

const double cpd::DEFAULT_LAMBDA = 3.0

Default value for lambda.

const bool cpd::DEFAULT_LINKED = true

Are the scalings of the two datasets linked by default?

const size_t cpd::DEFAULT_MAX_ITERATIONS = 150

The default number of iterations allowed.

const bool cpd::DEFAULT_NORMALIZE = true

Whether points should be normalized by default.

const double cpd::DEFAULT_OUTLIERS = 0.1

The default outlier weight.

const bool cpd::DEFAULT_REFLECTIONS = false

Should rigid registrations allow reflections by default?

const bool cpd::DEFAULT_SCALE = !DEFAULT_LINKED

Should rigid registrations scale the data by default?

const double cpd::DEFAULT_SIGMA2 = 0.0

The default sigma2.

const double cpd::DEFAULT_TOLERANCE = 1e-5

The default tolerance.