CCCoreLib 31 May 2022
CloudCompare Core algorithms
Public Types | Static Public Member Functions | Static Protected Member Functions | List of all members
CCCoreLib::RegistrationTools Class Reference

Common point cloud registration algorithms. More...

#include <RegistrationTools.h>

Inheritance diagram for CCCoreLib::RegistrationTools:
Inheritance graph
[legend]
Collaboration diagram for CCCoreLib::RegistrationTools:
Collaboration graph
[legend]

Public Types

enum  TRANSFORMATION_FILTERS {
  SKIP_NONE = 0 , SKIP_RXY = 1 , SKIP_RYZ = 2 , SKIP_RXZ = 4 ,
  SKIP_ROTATION = 7 , SKIP_TX = 8 , SKIP_TY = 16 , SKIP_TZ = 32 ,
  SKIP_TRANSLATION = 56
}
 Transformation constraints.
 
using ScaledTransformation = PointProjectionTools::Transformation
 Shortcut to PointProjectionTools::ScaledTransformation.
 

Static Public Member Functions

static void FilterTransformation (const ScaledTransformation &inTrans, int transformationFilters, ScaledTransformation &outTrans)
 'Filters' a transformation by constraining it along certain rotation axes and translation directions More...
 

Static Protected Member Functions

static bool RegistrationProcedure (GenericCloud *P, GenericCloud *X, ScaledTransformation &trans, bool adjustScale=false, ScalarField *coupleWeights=nullptr, PointCoordinateType aPrioriScale=1.0f)
 ICP Registration procedure with optional scale estimation. More...
 

Detailed Description

Common point cloud registration algorithms.

Member Function Documentation

◆ FilterTransformation()

void RegistrationTools::FilterTransformation ( const ScaledTransformation inTrans,
int  transformationFilters,
ScaledTransformation outTrans 
)
static

'Filters' a transformation by constraining it along certain rotation axes and translation directions

Parameters
inTransinput transformation
transformationFiltersfilters to be applied on the resulting transformation at each step (experimental) - see RegistrationTools::TRANSFORMATION_FILTERS flags
outTransoutput transformation

◆ RegistrationProcedure()

bool RegistrationTools::RegistrationProcedure ( GenericCloud P,
GenericCloud X,
ScaledTransformation trans,
bool  adjustScale = false,
ScalarField coupleWeights = nullptr,
PointCoordinateType  aPrioriScale = 1.0f 
)
staticprotected

ICP Registration procedure with optional scale estimation.

Determines the best quaternion (a couple qR|qT) and optionally a scale 's' (different from a priori scale Sa) to bring the cloud P closer to the reference cloud X (one step). Refer to the ICP algorithm theory for more details about this procedure, and to "Point Set Registration with Integrated Scale Estimation", Znisser et al, PRIP 2005 for the scale estimation.

X = Sa.s.R.P + T (with Sa = s = 1 by default)

Warning: P and X must have the same size, and must be in the same order (i.e. P[i] is the point equivalent to X[i] for all 'i').

Parameters
Pthe cloud to register (data)
Xthe reference cloud (model)
transthe resulting transformation
adjustScalewhether to estimate scale (s) as well (see jschmidt 2005)
coupleWeightsweights for each (Pi,Xi) couple (optional)
aPrioriScale'a priori' scale (Sa) between P and X
Returns
success

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