40 #ifndef PCL_REGISTRATION_TRANSFORMATION_VALIDATION_H_
41 #define PCL_REGISTRATION_TRANSFORMATION_VALIDATION_H_
43 #include <pcl/correspondence.h>
44 #include <pcl/features/feature.h>
45 #include <pcl/common/transforms.h>
46 #include <pcl/registration/correspondence_types.h>
50 namespace registration
67 template <
typename Po
intSource,
typename Po
intTarget,
typename Scalar =
float>
71 typedef Eigen::Matrix<Scalar, 4, 4>
Matrix4;
72 typedef boost::shared_ptr<TransformationValidation<PointSource, PointTarget, Scalar> >
Ptr;
73 typedef boost::shared_ptr<const TransformationValidation<PointSource, PointTarget, Scalar> >
ConstPtr;
97 const PointCloudSourceConstPtr &cloud_src,
98 const PointCloudTargetConstPtr &cloud_tgt,
99 const Matrix4 &transformation_matrix)
const = 0;
112 operator() (
const double &score1,
const double &score2)
const = 0;
124 const PointCloudSourceConstPtr &cloud_src,
125 const PointCloudTargetConstPtr &cloud_tgt,
126 const Matrix4 &transformation_matrix)
const = 0;
131 #endif // PCL_REGISTRATION_TRANSFORMATION_VALIDATION_H_
PointCloudSource::ConstPtr PointCloudSourceConstPtr
TransformationValidation represents the base class for methods that validate the correctness of a tra...
boost::shared_ptr< TransformationValidation< PointSource, PointTarget, Scalar > > Ptr
virtual bool isValid(const PointCloudSourceConstPtr &cloud_src, const PointCloudTargetConstPtr &cloud_tgt, const Matrix4 &transformation_matrix) const =0
Check if the score is valid for a specific transformation.
virtual ~TransformationValidation()
virtual bool operator()(const double &score1, const double &score2) const =0
Comparator function for deciding which score is better after running the validation on multiple trans...
PointCloudSource::Ptr PointCloudSourcePtr
TransformationValidation()
PointCloudTarget::Ptr PointCloudTargetPtr
pcl::PointCloud< PointSource > PointCloudSource
Eigen::Matrix< Scalar, 4, 4 > Matrix4
boost::shared_ptr< const TransformationValidation< PointSource, PointTarget, Scalar > > ConstPtr
boost::shared_ptr< const PointCloud< PointSource > > ConstPtr
boost::shared_ptr< PointCloud< PointSource > > Ptr
pcl::PointCloud< PointTarget > PointCloudTarget
PointCloudTarget::ConstPtr PointCloudTargetConstPtr
virtual double validateTransformation(const PointCloudSourceConstPtr &cloud_src, const PointCloudTargetConstPtr &cloud_tgt, const Matrix4 &transformation_matrix) const =0
Validate the given transformation with respect to the input cloud data, and return a score...