43 #include <pcl/registration/correspondence_types.h>
44 #include <pcl/registration/correspondence_estimation.h>
48 namespace registration
76 template <
typename Po
intSource,
typename Po
intTarget,
typename NormalT,
typename Scalar =
float>
80 using Ptr = shared_ptr<CorrespondenceEstimationNormalShooting<PointSource, PointTarget, NormalT, Scalar> >;
81 using ConstPtr = shared_ptr<const CorrespondenceEstimationNormalShooting<PointSource, PointTarget, NormalT, Scalar> >;
115 , source_normals_transformed_ ()
118 corr_name_ =
"CorrespondenceEstimationNormalShooting";
157 double max_distance = std::numeric_limits<double>::max ())
override;
168 double max_distance = std::numeric_limits<double>::max ())
override;
218 #include <pcl/registration/impl/correspondence_estimation_normal_shooting.hpp>
shared_ptr< KdTree< PointT, Tree > > Ptr
void fromPCLPointCloud2(const pcl::PCLPointCloud2 &msg, pcl::PointCloud< PointT > &cloud, const MsgFieldMap &field_map)
Convert a PCLPointCloud2 binary data blob into a pcl::PointCloud object using a field_map...
void determineCorrespondences(pcl::Correspondences &correspondences, double max_distance=std::numeric_limits< double >::max()) override
Determine the correspondences between input and target cloud.
search::KdTree is a wrapper class which inherits the pcl::KdTree class for performing search function...
NormalsConstPtr getSourceNormals() const
Get the normals of the source point cloud.
typename PointCloudSource::ConstPtr PointCloudSourceConstPtr
CorrespondenceEstimationBase< PointSource, PointTarget, Scalar >::Ptr clone() const override
Clone and cast to CorrespondenceEstimationBase.
void determineReciprocalCorrespondences(pcl::Correspondences &correspondences, double max_distance=std::numeric_limits< double >::max()) override
Determine the reciprocal correspondences between input and target cloud.
std::string corr_name_
The correspondence estimation method name.
typename KdTree::Ptr KdTreePtr
void setSourceNormals(const NormalsConstPtr &normals)
Set the normals computed on the source point cloud.
shared_ptr< CorrespondenceEstimationBase< PointSource, PointTarget, Scalar > > Ptr
CorrespondenceEstimationNormalShooting()
Empty constructor.
shared_ptr< const CorrespondenceEstimationBase< PointSource, PointTarget, Scalar > > ConstPtr
unsigned int getKSearch() const
Get the number of nearest neighbours considered in the target point cloud for computing correspondenc...
typename PointCloudNormals::ConstPtr NormalsConstPtr
CorrespondenceEstimationNormalShooting computes correspondences as points in the target cloud which h...
typename PointCloudNormals::Ptr NormalsPtr
shared_ptr< PointCloud< PointSource > > Ptr
bool initCompute()
Internal computation initialization.
void setKSearch(unsigned int k)
Set the number of nearest neighbours to be considered in the target point cloud.
bool requiresSourceNormals() const override
See if this rejector requires source normals.
~CorrespondenceEstimationNormalShooting()
Empty destructor.
typename PointCloudSource::Ptr PointCloudSourcePtr
typename PointCloudTarget::ConstPtr PointCloudTargetConstPtr
void setSourceNormals(pcl::PCLPointCloud2::ConstPtr cloud2) override
Blob method for setting the source normals.
shared_ptr< const PointCloud< PointSource > > ConstPtr
std::vector< pcl::Correspondence, Eigen::aligned_allocator< pcl::Correspondence > > Correspondences
typename PointCloudTarget::Ptr PointCloudTargetPtr
Abstract CorrespondenceEstimationBase class.