![]() |
ACloudViewer
3.9.4
A Modern Library for 3D Data Processing
|
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) |
| 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 cloudViewer::RegistrationTools | |
| static void | FilterTransformation (const ScaledTransformation &inTrans, int transformationFilters, const CCVector3 &toBeAlignedGravityCenter, const CCVector3 &referenceGravityCenter, ScaledTransformation &outTrans) |
Additional Inherited Members | |
Public Types inherited from cloudViewer::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. More... | |
| using | ScaledTransformation = PointProjectionTools::Transformation |
| Shortcut to PointProjectionTools::ScaledTransformation. More... | |
Static Protected Member Functions inherited from cloudViewer::RegistrationTools | |
| static bool | RegistrationProcedure (GenericCloud *P, GenericCloud *X, ScaledTransformation &trans, bool adjustScale=false, ScalarField *coupleWeights=nullptr, PointCoordinateType aPrioriScale=1.0f, CCVector3 *Gp=nullptr, CCVector3 *Gx=nullptr) |
| 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.
Definition at line 93 of file RegistrationTools.h.
|
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 |
Definition at line 824 of file RegistrationTools.cpp.
References cloudViewer::PointProjectionTools::Transformation::apply(), count, cloudViewer::GenericCloud::getNextPoint(), cloudViewer::GenericCloud::placeIteratorAtBeginning(), and cloudViewer::GenericCloud::size().
Referenced by ccPointPairRegistrationDlg::callHornRegistration(), and define_RegistrationTools().
|
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 |
Definition at line 816 of file RegistrationTools.cpp.
References cloudViewer::RegistrationTools::RegistrationProcedure().
Referenced by ccPointPairRegistrationDlg::callHornRegistration(), and define_RegistrationTools().