43#include <pcl/registration/correspondence_estimation.h>
44#include <pcl/registration/correspondence_types.h>
75template <
typename PointSource,
78 typename Scalar =
float>
93 initComputeReciprocal;
101 point_representation_;
125 : source_normals_(), source_normals_transformed_(), k_(10)
127 corr_name_ =
"CorrespondenceEstimationNormalShooting";
139 source_normals_ = normals;
147 return (source_normals_);
175 double max_distance = std::numeric_limits<double>::max())
override;
188 double max_distance = std::numeric_limits<double>::max())
override;
246#include <pcl/registration/impl/correspondence_estimation_normal_shooting.hpp>
PointCloudConstPtr input_
PointCloud represents the base class in PCL for storing collections of 3D points.
shared_ptr< PointCloud< PointSource > > Ptr
shared_ptr< const PointCloud< PointSource > > ConstPtr
Abstract CorrespondenceEstimationBase class.
PointCloudTargetConstPtr target_
CorrespondenceEstimationBase()
const std::string & getClassName() const
IndicesPtr target_indices_
shared_ptr< CorrespondenceEstimationBase< PointSource, PointTarget, Scalar > > Ptr
typename PointCloudTarget::Ptr PointCloudTargetPtr
pcl::PointCloud< NormalT > PointCloudNormals
typename PointCloudSource::ConstPtr PointCloudSourceConstPtr
pcl::search::KdTree< PointTarget > KdTree
CorrespondenceEstimationBase< PointSource, PointTarget, Scalar >::Ptr clone() const override
Clone and cast to CorrespondenceEstimationBase.
typename PointCloudTarget::ConstPtr PointCloudTargetConstPtr
typename PointCloudNormals::Ptr NormalsPtr
void setSourceNormals(pcl::PCLPointCloud2::ConstPtr cloud2) override
Blob method for setting the source normals.
typename PointCloudSource::Ptr PointCloudSourcePtr
unsigned int getKSearch() const
Get the number of nearest neighbours considered in the target point cloud for computing correspondenc...
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.
void determineReciprocalCorrespondences(pcl::Correspondences &correspondences, double max_distance=std::numeric_limits< double >::max()) override
Determine the reciprocal correspondences between input and target cloud.
pcl::PointCloud< PointTarget > PointCloudTarget
typename PointCloudNormals::ConstPtr NormalsConstPtr
CorrespondenceEstimationNormalShooting()
Empty constructor.
void determineCorrespondences(pcl::Correspondences &correspondences, double max_distance=std::numeric_limits< double >::max()) override
Determine the correspondences between input and target cloud.
shared_ptr< CorrespondenceEstimationNormalShooting< PointSource, PointTarget, NormalT, Scalar > > Ptr
shared_ptr< const CorrespondenceEstimationNormalShooting< PointSource, PointTarget, NormalT, Scalar > > ConstPtr
typename KdTree::Ptr KdTreePtr
NormalsConstPtr getSourceNormals() const
Get the normals of the source point cloud.
pcl::PointCloud< PointSource > PointCloudSource
void setSourceNormals(const NormalsConstPtr &normals)
Set the normals computed on the source point cloud.
bool initCompute()
Internal computation initialization.
~CorrespondenceEstimationNormalShooting()
Empty destructor.
search::KdTree is a wrapper class which inherits the pcl::KdTree class for performing search function...
shared_ptr< KdTree< PointTarget, pcl::KdTreeFLANN< PointTarget > > > Ptr
std::vector< pcl::Correspondence, Eigen::aligned_allocator< pcl::Correspondence > > Correspondences
void fromPCLPointCloud2(const pcl::PCLPointCloud2 &msg, pcl::PointCloud< PointT > &cloud, const MsgFieldMap &field_map)
Convert a PCLPointCloud2 binary data blob into a pcl::PointCloud<T> object using a field_map.
shared_ptr< const ::pcl::PCLPointCloud2 > ConstPtr