matchBase.h
Go to the documentation of this file.
Scalar MeanDistance() const
Computes the mean distance between points in Q and their nearest neighbor. We need this for normaliza...
Scalar max_angle
Constraints about transformations.
Definition: matchBase.h:106
bool ComputeRigidTransformation(const Coordinates &ref, const Coordinates &candidate, const Eigen::Matrix< Scalar, 3, 1 > ¢roid1, Eigen::Matrix< Scalar, 3, 1 > centroid2, Eigen::Ref< MatrixType > transform, Scalar &rms_, bool computeScale) const
Computes the best rigid transformation between three corresponding pairs. The transformation is chara...
size_t sample_size
The number of points in the sample. We sample this number of points uniformly from P and Q...
Definition: matchBase.h:94
int max_time_seconds
Maximum time we allow the computation to take. This makes the algorithm an ANY TIME algorithm that ca...
Definition: matchBase.h:99
constexpr bool needsGlobalTransformation() const
Definition: matchBase.h:68
Scalar max_translation_distance
Maximum translation distance. Set negative to ignore.
Definition: matchBase.h:108
Definition: matchBase.h:84
virtual void Initialize()
Initializes the data structures and needed values before the match computation. This method is called...
Definition: matchBase.h:259
std::vector< PosMutablePoint > sampled_P_3D_
Sampled P (3D coordinates).
Definition: matchBase.h:195
EIGEN_MAKE_ALIGNED_OPERATOR_NEW MatchBase(const OptionsType &options, const Utils::Logger &logger)
const std::vector< PosMutablePoint > & getFirstSampled() const
Read access to the sampled clouds used for the registration.
Definition: matchBase.h:140
virtual ~MatchBase()
CongruentSetExplorationBase< Traits, PointType, TransformVisitor, PairFilteringFunctor, OptExts... >::Scalar ComputeTransformation(const InputRange1 &P, const InputRange2 &Q, Eigen::Ref< typename CongruentSetExplorationBase< Traits, PointType, TransformVisitor, PairFilteringFunctor, OptExts... >::MatrixType > transformation, const Sampler< PointType > &sampler, TransformVisitor &v)
Definition: congruentSetExplorationBase.hpp:61
const std::vector< PosMutablePoint > & getSecondSampled() const
Read access to the sampled clouds used for the registration.
Definition: matchBase.h:145
void get(int queryId, int nElPerDim, int, typename NeighborhoodType< 3 >::ptr first, typename NeighborhoodType< 3 >::ptr)
Definition: utils.h:279
Definition: logger.h:62
unsigned int randomSeed
use a constant default seed by default
Definition: matchBase.h:101
void init(const InputRange1 &P, const InputRange2 &Q, const Sampler< PointType > &sampler)
Initializes the internal state of the Base class.
bool SelectRandomTriangle(Scalar max_base_diameter, int &base1, int &base2, int &base3)
Selects a random triangle in the set P (then we add another point to keep the base as planar as possi...
Scalar ComputeTransformation(const InputRange1 &P, const InputRange2 &Q, Eigen::Ref< MatrixType > transformation, const Sampler< PointType > &sampler, TransformVisitor &v)
Computes an approximation of the best LCP (directional) from Q to P and the rigid transformation that...
Definition: matchBase.h:177
void operator()(float, float, const Eigen::MatrixBase< Derived > &) const
Definition: matchBase.h:67
KdTree< Scalar > kd_tree_
KdTree used to compute the LCP.
Definition: matchBase.h:205
Scalar delta
Distance threshold used to compute the LCP.
Definition: matchBase.h:91
A convenience class used to wrap (any) PointType to allow mutation of position of point samples for i...
Definition: matchBase.h:116
PosMutablePoint(const ExternalType &i)
Definition: matchBase.h:125
std::vector< PosMutablePoint > sampled_Q_3D_
Sampled Q (3D coordinates).
Definition: matchBase.h:197