CCCoreLib 31 May 2022
CloudCompare Core algorithms
|
Horn point cloud registration algorithm. More...
#include <RegistrationTools.h>
Static Public Member Functions | |
static bool | FindAbsoluteOrientation (GenericCloud *lCloud, GenericCloud *rCloud, ScaledTransformation &trans, bool fixedScale=false) |
Returns "absolute orientation" (scale + transformation) between two set of (unordered) points. More... | |
static double | ComputeRMS (GenericCloud *lCloud, GenericCloud *rCloud, const ScaledTransformation &trans) |
Computes RMS between two clouds given a transformation and a scale. More... | |
Static Public Member Functions inherited from CCCoreLib::RegistrationTools | |
static void | FilterTransformation (const ScaledTransformation &inTrans, int transformationFilters, ScaledTransformation &outTrans) |
'Filters' a transformation by constraining it along certain rotation axes and translation directions More... | |
Additional Inherited Members | |
Public Types inherited from CCCoreLib::RegistrationTools | |
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 Protected Member Functions inherited from CCCoreLib::RegistrationTools | |
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... | |
Horn point cloud registration algorithm.
See 'Closed-form solution of absolute orientation using unit quaternions', B.K.P. Horn, 1987.
|
static |
Computes RMS between two clouds given a transformation and a scale.
Warning: both clouds must have the same size (and at least 3 points) RMS = Sqrt ( Sum( square_norm( Pr - s*R*Pl+T ) ) / count )
lCloud | left cloud {Pl} |
rCloud | right cloud {Pr} |
trans | transformation: Pr = s.R.Pl + T |
|
static |
Returns "absolute orientation" (scale + transformation) between two set of (unordered) points.
Warning: both clouds must have the same size (and at least 3 points) Output transformation is from the left (L) to the right (R) coordinate system
lCloud | left cloud {Pl} |
rCloud | right cloud {Pr} |
trans | resulting transformation: Pr = s.R.Pl + T |
fixedScale | force scale parameter to 1.0 |