![]() |
CCCoreLib 31 May 2022
CloudCompare Core algorithms
|
Common point cloud registration algorithms. More...
#include <RegistrationTools.h>
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... | |
Common point cloud registration algorithms.
|
static |
'Filters' a transformation by constraining it along certain rotation axes and translation directions
inTrans | input transformation |
transformationFilters | filters to be applied on the resulting transformation at each step (experimental) - see RegistrationTools::TRANSFORMATION_FILTERS flags |
outTrans | output transformation |
|
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').
P | the cloud to register (data) |
X | the reference cloud (model) |
trans | the resulting transformation |
adjustScale | whether to estimate scale (s) as well (see jschmidt 2005) |
coupleWeights | weights for each (Pi,Xi) couple (optional) |
aPrioriScale | 'a priori' scale (Sa) between P and X |