A parameter set for matching and down sampling point clouds. More...
#include <cvb/match_3d/match_3d.hpp>
Public Member Functions | |
MatchingParameters () noexcept | |
Create a parameter set to control the matching algorithm with default values. More... | |
MatchingParameters (std::size_t maxScenePoints, std::size_t maxModelPoints) noexcept | |
Create a parameter set to control the matching algorithm with default values. More... | |
MatchingParameters (std::size_t maxScenePoints, std::size_t maxModelPoints, int maxIterations, double tolerance, double minImprovement, double correspondenceThreshold, double convergenceRadius, bool prealign, CorrespondenceType correspondenceMethod) noexcept | |
Create a parameter set to control the Match3d ICP algorithm. More... | |
std::size_t | MaxModelPoints () const noexcept |
Gets maximum number of model points to use. More... | |
void | SetMaxModelPoints (std::size_t maxModelPoints) noexcept |
Sets maximum number of model points to use. More... | |
std::size_t | MaxScenePoints () const noexcept |
Gets maximum number of scene points to use. More... | |
void | SetMaxScenePoints (std::size_t maxScenePoints) noexcept |
Sets maximum number of scene points to use. More... | |
int | MaxIterations () const noexcept |
Gets maximum number of iterations to execute. More... | |
void | SetMaxIterations (int value) noexcept |
Sets maximum number of iterations to execute. More... | |
double | Tolerance () const noexcept |
Gets tolerance for stopping criteria. More... | |
void | SetTolerance (double value) noexcept |
Sets tolerance for stopping criteria. More... | |
double | MinImprovement () const noexcept |
Gets threshold for minimum improvement for early stopping criteria. More... | |
void | SetMinImprovement (double value) noexcept |
Sets threshold for minimum improvement for early stopping criteria. More... | |
double | CorrespondenceThreshold () const noexcept |
Gets special metric used for consensus ICP. More... | |
void | SetCorrespondenceThreshold (double value) noexcept |
Sets special metric used for consensus ICP. More... | |
double | ConvergenceRadius () const noexcept |
Gets convergence radius to define when two points are considered as a converged match. More... | |
void | SetConvergenceRadius (double value) noexcept |
Sets convergence radius to define when two points are considered as a converged match. More... | |
bool | Prealign () const noexcept |
Gets true, if pre-alignment of point clouds should be done using the center of gravity. More... | |
void | SetPrealign (bool value) noexcept |
Set true, if pre-alignment of point clouds should be done using the center of gravity. More... | |
CorrespondenceType | CorrespondenceMethod () const noexcept |
Gets correspondence type used. More... | |
void | SetCorrespondenceMethod (CorrespondenceType value) noexcept |
Sets correspondence type used. More... | |
Friends | |
MatchingResult | IcpMatch (const PointCloud &model, const PointCloud &scene, const MatchingParameters ¶meters) |
This function matches two point clouds. More... | |
A parameter set for matching and down sampling point clouds.
|
inlinenoexcept |
Create a parameter set to control the matching algorithm with default values.
Note, that all points are used for the matching per default. If you like to save computation time, reduce number of scene and/or model points using SetMaxScenePoints/SetMaxModelPoints.
|
inlinenoexcept |
Create a parameter set to control the matching algorithm with default values.
[in] | maxScenePoints | Maximum number of scene points to use. Points are selected randomly. If zero, all points are used. |
[in] | maxModelPoints | Maximum number of model points to use. Points are selected randomly. If zero, all points are used. |
Does | not throw any exception. |
|
inlinenoexcept |
Create a parameter set to control the Match3d ICP algorithm.
[in] | maxScenePoints | Maximum number of scene points to use. Points are selected randomly. If zero, all points are used. |
[in] | maxModelPoints | Maximum number of model points to use. Points are selected randomly. If zero, all points are used. |
[in] | maxIterations | Maximum number of iterations to execute. |
[in] | tolerance | Iteration stops if mean distance between aligned point clouds is equal/below this value. |
[in] | minImprovement | The mean distance between aligned point clouds has to differ more than this value from the results of the previous iteration. Otherwise iteration stops. |
[in] | correspondenceThreshold | Parameter for shape sensitivity. It is defined by a value between 0 and 1. A higher value means higher sensitivity. A value of 0 corresponds to the classical ICP without any shape sensitivity. A value between 0.8 and 0.9 is recommended as default value when aligning point clouds. |
[in] | convergenceRadius | Convergence radius to define when two points are considered as a converged match. |
[in] | prealign | True, if pre-alignment of point clouds should be done using the center of gravity. |
[in] | correspondenceMethod | Correspondence type used. |
Does | not throw any exception. |
|
inlinenoexcept |
Gets convergence radius to define when two points are considered as a converged match.
Does | not throw any exception. |
|
inlinenoexcept |
Gets correspondence type used.
Does | not throw any exception. |
|
inlinenoexcept |
Gets special metric used for consensus ICP.
A value of 0 will result in the classical ICP method.
Does | not throw any exception. |
|
inlinenoexcept |
Gets maximum number of iterations to execute.
Does | not throw any exception. |
|
inlinenoexcept |
Gets maximum number of model points to use.
Does | not throw any exception. |
|
inlinenoexcept |
Gets maximum number of scene points to use.
Does | not throw any exception. |
|
inlinenoexcept |
Gets threshold for minimum improvement for early stopping criteria.
The mean distance between aligned point clouds has to differ more than this value from the results of the previous iteration. Otherwise iteration stops.
Does | not throw any exception. |
|
inlinenoexcept |
Gets true, if pre-alignment of point clouds should be done using the center of gravity.
Does | not throw any exception. |
|
inlinenoexcept |
Sets convergence radius to define when two points are considered as a converged match.
[in] | value | Convergence radius. |
Does | not throw any exception. |
|
inlinenoexcept |
Sets correspondence type used.
[in] | value | Correspondence type. |
Does | not throw any exception. |
|
inlinenoexcept |
Sets special metric used for consensus ICP.
A value of 0 will result in the classical ICP method.
[in] | value | Threshold. |
Does | not throw any exception. |
|
inlinenoexcept |
Sets maximum number of iterations to execute.
[in] | value | Maximum number of iterations. |
Does | not throw any exception. |
|
inlinenoexcept |
Sets maximum number of model points to use.
[in] | maxModelPoints | The maximum number of points. If zero, all points are used. |
Does | not throw any exception. |
|
inlinenoexcept |
Sets maximum number of scene points to use.
[in] | maxScenePoints | The maximum number of points. If zero, all points are used. |
Does | not throw any exception. |
|
inlinenoexcept |
Sets threshold for minimum improvement for early stopping criteria.
[in] | value | Threshold. |
Does | not throw any exception. |
|
inlinenoexcept |
Set true, if pre-alignment of point clouds should be done using the center of gravity.
[in] | value | Value for pre-alignment. |
Does | not throw any exception. |
|
inlinenoexcept |
Sets tolerance for stopping criteria.
[in] | value | Tolerance. |
Does | not throw any exception. |
|
inlinenoexcept |
Gets tolerance for stopping criteria.
Iteration stops if mean distance between aligned point clouds is equal/below this value.
Does | not throw any exception. |
|
friend |
This function matches two point clouds.
[in] | scene | Scene point cloud |
[in] | model | Model point cloud to be matched to scene. |
[in] | parameters | Parameters that control the algorithm. |
Any | exception derived from std::exception including CvbException. |
This function matches two point clouds by the iterative closest point algorithm (ICP), see: The algorithm follows Arun KS, Huang TS, Blostein SD (1987) Least-squares fitting of two 3D point sets. IEEE Transactions on Pattern Analysis and Machine Intelligence 9:698-700.