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_;
115 KdTreeReciprocalConstPtr;
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>
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.
pcl::search::KdTree< PointTarget > KdTree
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
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.
~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.
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
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.
std::vector< pcl::Correspondence, Eigen::aligned_allocator< pcl::Correspondence > > Correspondences
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.
shared_ptr< const ::pcl::PCLPointCloud2 > ConstPtr