Point Cloud Library (PCL)
1.14.1-dev
|
TransformationValidationEuclidean computes an L2SQR norm between a source and target dataset. More...
#include <pcl/registration/transformation_validation_euclidean.h>
Classes | |
class | MyPointRepresentation |
Internal point representation uses only 3D coordinates for L2. More... | |
Public Types | |
using | Matrix4 = typename TransformationValidation< PointSource, PointTarget, Scalar >::Matrix4 |
using | Ptr = shared_ptr< TransformationValidation< PointSource, PointTarget, Scalar > > |
using | ConstPtr = shared_ptr< const TransformationValidation< PointSource, PointTarget, Scalar > > |
using | KdTree = pcl::search::KdTree< PointTarget > |
using | KdTreePtr = typename KdTree::Ptr |
using | PointRepresentationConstPtr = typename KdTree::PointRepresentationConstPtr |
using | PointCloudSourceConstPtr = typename TransformationValidation< PointSource, PointTarget >::PointCloudSourceConstPtr |
using | PointCloudTargetConstPtr = typename TransformationValidation< PointSource, PointTarget >::PointCloudTargetConstPtr |
Public Member Functions | |
TransformationValidationEuclidean () | |
Constructor. More... | |
virtual | ~TransformationValidationEuclidean ()=default |
void | setMaxRange (double max_range) |
Set the maximum allowable distance between a point and its correspondence in the target in order for a correspondence to be considered valid. More... | |
double | getMaxRange () |
Get the maximum allowable distance between a point and its correspondence, as set by the user. More... | |
void | setSearchMethodTarget (const KdTreePtr &tree, bool force_no_recompute=false) |
Provide a pointer to the search object used to find correspondences in the target cloud. More... | |
void | setThreshold (double threshold) |
Set a threshold for which a specific transformation is considered valid. More... | |
double | getThreshold () |
Get the threshold for which a specific transformation is valid. More... | |
double | validateTransformation (const PointCloudSourceConstPtr &cloud_src, const PointCloudTargetConstPtr &cloud_tgt, const Matrix4 &transformation_matrix) const |
Validate the given transformation with respect to the input cloud data, and return a score. More... | |
virtual bool | operator() (const double &score1, const double &score2) const |
Comparator function for deciding which score is better after running the validation on multiple transforms. More... | |
virtual bool | isValid (const PointCloudSourceConstPtr &cloud_src, const PointCloudTargetConstPtr &cloud_tgt, const Matrix4 &transformation_matrix) const |
Check if the score is valid for a specific transformation. More... | |
Protected Attributes | |
double | max_range_ |
The maximum allowable distance between a point and its correspondence in the target in order for a correspondence to be considered valid. More... | |
double | threshold_ |
The threshold for which a specific transformation is valid. More... | |
KdTreePtr | tree_ |
A pointer to the spatial search object. More... | |
bool | force_no_recompute_ {false} |
A flag which, if set, means the tree operating on the target cloud will never be recomputed. More... | |
TransformationValidationEuclidean computes an L2SQR norm between a source and target dataset.
To prevent points with bad correspondences to contribute to the overall score, the class also accepts a maximum_range parameter given via setMaxRange that is used as a cutoff value for nearest neighbor distance comparisons.
The output score is normalized with respect to the number of valid correspondences found.
Usage example:
Definition at line 75 of file transformation_validation_euclidean.h.
using pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >::ConstPtr = shared_ptr<const TransformationValidation<PointSource, PointTarget, Scalar> > |
Definition at line 81 of file transformation_validation_euclidean.h.
using pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >::KdTree = pcl::search::KdTree<PointTarget> |
Definition at line 84 of file transformation_validation_euclidean.h.
using pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >::KdTreePtr = typename KdTree::Ptr |
Definition at line 85 of file transformation_validation_euclidean.h.
using pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >::Matrix4 = typename TransformationValidation<PointSource, PointTarget, Scalar>::Matrix4 |
Definition at line 77 of file transformation_validation_euclidean.h.
using pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >::PointCloudSourceConstPtr = typename TransformationValidation<PointSource, PointTarget>::PointCloudSourceConstPtr |
Definition at line 89 of file transformation_validation_euclidean.h.
using pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >::PointCloudTargetConstPtr = typename TransformationValidation<PointSource, PointTarget>::PointCloudTargetConstPtr |
Definition at line 92 of file transformation_validation_euclidean.h.
using pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >::PointRepresentationConstPtr = typename KdTree::PointRepresentationConstPtr |
Definition at line 87 of file transformation_validation_euclidean.h.
using pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >::Ptr = shared_ptr<TransformationValidation<PointSource, PointTarget, Scalar> > |
Definition at line 80 of file transformation_validation_euclidean.h.
|
inline |
Constructor.
Sets the max_range parameter to double::max, threshold_ to NaN and initializes the internal search tree to a FLANN kd-tree.
Definition at line 100 of file transformation_validation_euclidean.h.
|
virtualdefault |
|
inline |
Get the maximum allowable distance between a point and its correspondence, as set by the user.
Definition at line 122 of file transformation_validation_euclidean.h.
References pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >::max_range_.
|
inline |
Get the threshold for which a specific transformation is valid.
Definition at line 157 of file transformation_validation_euclidean.h.
References pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >::threshold_.
|
inlinevirtual |
Check if the score is valid for a specific transformation.
[in] | cloud_src | the source point cloud dataset |
[in] | cloud_tgt | the target point cloud dataset |
[out] | transformation_matrix | the transformation matrix |
Definition at line 200 of file transformation_validation_euclidean.h.
References pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >::threshold_, and pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >::validateTransformation().
|
inlinevirtual |
Comparator function for deciding which score is better after running the validation on multiple transforms.
[in] | score1 | the first value |
[in] | score2 | the second value |
Definition at line 186 of file transformation_validation_euclidean.h.
|
inline |
Set the maximum allowable distance between a point and its correspondence in the target in order for a correspondence to be considered valid.
Default: double::max.
[in] | max_range | the new maximum allowable distance |
Definition at line 113 of file transformation_validation_euclidean.h.
References pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >::max_range_.
|
inline |
Provide a pointer to the search object used to find correspondences in the target cloud.
[in] | tree | a pointer to the spatial search object. |
[in] | force_no_recompute | If set to true, this tree will NEVER be recomputed, regardless of calls to setInputTarget. Only use if you are confident that the tree will be set correctly. |
Definition at line 135 of file transformation_validation_euclidean.h.
References pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >::force_no_recompute_, and pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >::tree_.
|
inline |
Set a threshold for which a specific transformation is considered valid.
[in] | threshold | the threshold for which a transformation is vali |
Definition at line 150 of file transformation_validation_euclidean.h.
References pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >::threshold_.
double pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >::validateTransformation | ( | const PointCloudSourceConstPtr & | cloud_src, |
const PointCloudTargetConstPtr & | cloud_tgt, | ||
const Matrix4 & | transformation_matrix | ||
) | const |
Validate the given transformation with respect to the input cloud data, and return a score.
[in] | cloud_src | the source point cloud dataset |
[in] | cloud_tgt | the target point cloud dataset |
[out] | transformation_matrix | the resultant transformation matrix |
Definition at line 50 of file transformation_validation_euclidean.hpp.
References pcl::PointCloud< PointT >::resize().
Referenced by pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >::isValid().
|
protected |
A flag which, if set, means the tree operating on the target cloud will never be recomputed.
Definition at line 231 of file transformation_validation_euclidean.h.
Referenced by pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >::setSearchMethodTarget().
|
protected |
The maximum allowable distance between a point and its correspondence in the target in order for a correspondence to be considered valid.
Default: double::max.
Definition at line 219 of file transformation_validation_euclidean.h.
Referenced by pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >::getMaxRange(), and pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >::setMaxRange().
|
protected |
The threshold for which a specific transformation is valid.
Set to NaN by default, as we must require the user to set it.
Definition at line 224 of file transformation_validation_euclidean.h.
Referenced by pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >::getThreshold(), pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >::isValid(), and pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >::setThreshold().
|
protected |
A pointer to the spatial search object.
Definition at line 227 of file transformation_validation_euclidean.h.
Referenced by pcl::registration::TransformationValidationEuclidean< PointSource, PointTarget, Scalar >::setSearchMethodTarget().