43 #include <pcl/registration/correspondence_estimation.h>
44 #include <pcl/registration/correspondence_types.h>
47 namespace registration {
75 template <
typename PointSource,
78 typename Scalar =
float>
135 : source_normals_(), source_normals_transformed_()
137 corr_name_ =
"CorrespondenceEstimationNormalShooting";
149 source_normals_ = normals;
157 return (source_normals_);
185 double max_distance = std::numeric_limits<double>::max())
override;
198 double max_distance = std::numeric_limits<double>::max())
override;
256 #include <pcl/registration/impl/correspondence_estimation_normal_shooting.hpp>
shared_ptr< PointCloud< PointSource > > Ptr
shared_ptr< const PointCloud< PointSource > > ConstPtr
Abstract CorrespondenceEstimationBase class.
PointCloudTargetPtr input_transformed_
The transformed input source point cloud dataset.
typename KdTree::ConstPtr KdTreeConstPtr
typename KdTreeReciprocal::Ptr KdTreeReciprocalPtr
PointRepresentationConstPtr point_representation_
The target point representation used (internal).
std::string corr_name_
The correspondence estimation method name.
typename KdTree::Ptr KdTreePtr
KdTreeReciprocalPtr tree_reciprocal_
A pointer to the spatial search object used for the source dataset.
typename KdTreeReciprocal::ConstPtr KdTreeReciprocalConstPtr
bool initComputeReciprocal()
Internal computation initialization for reciprocal correspondences.
shared_ptr< CorrespondenceEstimationBase< PointSource, PointTarget, Scalar > > Ptr
pcl::search::KdTree< PointSource > KdTreeReciprocal
CorrespondenceEstimationNormalShooting computes correspondences as points in the target cloud which h...
typename PointCloudTarget::Ptr PointCloudTargetPtr
typename PointCloudSource::ConstPtr PointCloudSourceConstPtr
shared_ptr< const CorrespondenceEstimationNormalShooting< PointSource, PointTarget, NormalT, Scalar > > ConstPtr
CorrespondenceEstimationBase< PointSource, PointTarget, Scalar >::Ptr clone() const override
Clone and cast to CorrespondenceEstimationBase.
shared_ptr< CorrespondenceEstimationNormalShooting< PointSource, PointTarget, NormalT, Scalar > > Ptr
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.
~CorrespondenceEstimationNormalShooting() override=default
Empty destructor.
void determineReciprocalCorrespondences(pcl::Correspondences &correspondences, double max_distance=std::numeric_limits< double >::max()) override
Determine the reciprocal correspondences between input and target cloud.
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.
NormalsConstPtr getSourceNormals() const
Get the normals of the source point cloud.
void setSourceNormals(const NormalsConstPtr &normals)
Set the normals computed on the source point cloud.
bool initCompute()
Internal computation initialization.
search::KdTree is a wrapper class which inherits the pcl::KdTree class for performing search function...
void fromPCLPointCloud2(const pcl::PCLPointCloud2 &msg, pcl::PointCloud< PointT > &cloud, const MsgFieldMap &field_map, const std::uint8_t *msg_data)
Convert a PCLPointCloud2 binary data blob into a pcl::PointCloud<T> object using a field_map.
std::vector< pcl::Correspondence, Eigen::aligned_allocator< pcl::Correspondence > > Correspondences
A point structure representing normal coordinates and the surface curvature estimate.
shared_ptr< const ::pcl::PCLPointCloud2 > ConstPtr