ICP algorithm for 3D point clouds as described by Besl and McKay [1]. More...
#include <Icp.hpp>
Public Types | |
typedef super::Matrix | Matrix |
Public Member Functions | |
ValueType | compute () |
void | setSourcePoints (const std::vector< Coordinate< ValueType > > &source_points) |
Set the data points as decribed here. | |
void | setTargetPoints (const std::vector< Coordinate< ValueType > > &target_points) |
Set the model points as decribed here. | |
void | setInitialEstimation (const Matrix &transformation) |
Set the initial transformation from the source to the target point coordinate system. | |
void | setEstimationAlgorithm (EstimateTransformation3D< ValueType > &estimator) |
Set the transformation estimator. | |
void | setMaximumNumberIterations (unsigned number) |
Set the maximum number of iterations performed by an algorithm (default is 20). | |
void | setMaximumRMSE (ValueType value) |
Set an upper bound of the root mean square error; an algorithm terminates if the error of the current estimation falls below this value (default is 0). | |
void | setEpsApproximate (float value) |
Set the value for the eps-approximate neighbor search. The higher the value the faster the search (but also the less accurate) (default is 0). | |
void | abortComputation () |
Call this function to abort a running algorithm. | |
const Matrix & | getTransformation () |
Returns the estimated transformation in the form of a homogeneous matrix. | |
Public Attributes | |
Signal< unsigned > | progress |
Provides the current state of computation (from 0 to 100). | |
Protected Attributes | |
unsigned | dimension |
Dimension of the source and target points. | |
const std::vector< Coordinate < ValueType > > * | source_points |
Reference to the data points given by the user. An algorithm might store a local copy which is transformed during the registration procedure. | |
flann::Matrix< ValueType > | target_points |
Internal copy of the model points given by the user. | |
flann::Matrix< ValueType > | query_point |
Query point used to search the kd-tree. | |
flann::Matrix< ValueType > | distances |
Distance to the nearest neighbor obtained by a nearest neighbor search. | |
flann::Matrix< int > | indices |
Index of the nearest neighbor in target_points obtained by a nearest neighbor search. | |
flann::Index< flann::L2 < ValueType > > * | tree |
Data structure of the search index (kd-tree). | |
float | eps |
Eps-approximate value for the nearest neighbor search. | |
EstimateTransformation3D < ValueType > * | estimator |
Reference to the user-provided estimator. | |
unsigned | maximum_number_iterations |
Maximum possible number of iterations during the computation. | |
ValueType | maximum_rms_error |
Iteration stop criterion. If the current RMSE falls below this bound, an algorithm might terminate. | |
Matrix | transformation |
Internally stored (homogeneous) transformation. | |
volatile bool | abort |
This flag must be checked during iterations; can be set by other threads through abortComputation(). |
ICP algorithm for 3D point clouds as described by Besl and McKay [1].
ValueType | Scalar type (must be a floating point type). |
For a more detailed description and how to use this class, please have a look at the interface class.
[1] Paul J. Besl and Neil D. McKay, "A Method for Registration of 3-D Shapes", IEEE Transactions on Pattern Analysis and Machine Intelligence, 1992
Definition at line 471 of file Icp.hpp.
ValueType TRTK::Icp3D< ValueType >::compute | ( | ) | [virtual] |
range_error | A range error exception is thrown if no model points are given. |
Implements TRTK::IcpBase< ValueType >.
void TRTK::IcpBase< ValueType >::setSourcePoints | ( | const std::vector< Coordinate< ValueType > > & | source_points ) | [virtual, inherited] |
Set the data points as decribed here.
Only a reference is stored.
Implements TRTK::IcpInterface< ValueType >.
void TRTK::IcpBase< ValueType >::setTargetPoints | ( | const std::vector< Coordinate< ValueType > > & | target_points ) | [virtual, inherited] |
Set the model points as decribed here.
The targe points are copied.
Implements TRTK::IcpInterface< ValueType >.
Documentation generated by Doxygen