42#include <pcl/registration/correspondence_estimation.h>
43#include <pcl/registration/correspondence_types.h>
52template <
typename PointSource,
55 typename Scalar =
float>
70 initComputeReciprocal;
78 point_representation_;
102 : source_normals_(), source_normals_transformed_(), target_normals_()
104 corr_name_ =
"CorrespondenceEstimationBackProjection";
116 source_normals_ = normals;
124 return (source_normals_);
133 target_normals_ = normals;
141 return (target_normals_);
184 double max_distance = std::numeric_limits<double>::max());
197 double max_distance = std::numeric_limits<double>::max());
258#include <pcl/registration/impl/correspondence_estimation_backprojection.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
void setSourceNormals(const NormalsConstPtr &normals)
Set the normals computed on the source point cloud.
typename KdTree::Ptr KdTreePtr
void setTargetNormals(pcl::PCLPointCloud2::ConstPtr cloud2)
Method for setting the target normals.
bool initCompute()
Internal computation initialization.
CorrespondenceEstimationBackProjection()
Empty constructor.
bool requiresTargetNormals() const
See if this rejector requires target normals.
shared_ptr< CorrespondenceEstimationBackProjection< PointSource, PointTarget, NormalT, Scalar > > Ptr
typename PointCloudNormals::Ptr NormalsPtr
void setSourceNormals(pcl::PCLPointCloud2::ConstPtr cloud2)
Blob method for setting the source normals.
typename PointCloudSource::ConstPtr PointCloudSourceConstPtr
pcl::PointCloud< PointTarget > PointCloudTarget
virtual CorrespondenceEstimationBase< PointSource, PointTarget, Scalar >::Ptr clone() const
Clone and cast to CorrespondenceEstimationBase.
NormalsConstPtr getSourceNormals() const
Get the normals of the source point cloud.
pcl::PointCloud< PointSource > PointCloudSource
void setKSearch(unsigned int k)
Set the number of nearest neighbours to be considered in the target point cloud.
pcl::PointCloud< NormalT > PointCloudNormals
pcl::search::KdTree< PointTarget > KdTree
unsigned int getKSearch() const
Get the number of nearest neighbours considered in the target point cloud for computing correspondenc...
NormalsConstPtr getTargetNormals() const
Get the normals of the target point cloud.
virtual void determineReciprocalCorrespondences(pcl::Correspondences &correspondences, double max_distance=std::numeric_limits< double >::max())
Determine the reciprocal correspondences between input and target cloud.
virtual ~CorrespondenceEstimationBackProjection()=default
Empty destructor.
typename PointCloudTarget::Ptr PointCloudTargetPtr
bool requiresSourceNormals() const
See if this rejector requires source normals.
shared_ptr< const CorrespondenceEstimationBackProjection< PointSource, PointTarget, NormalT, Scalar > > ConstPtr
void determineCorrespondences(pcl::Correspondences &correspondences, double max_distance=std::numeric_limits< double >::max())
Determine the correspondences between input and target cloud.
typename PointCloudNormals::ConstPtr NormalsConstPtr
typename PointCloudSource::Ptr PointCloudSourcePtr
void setTargetNormals(const NormalsConstPtr &normals)
Set the normals computed on the target point cloud.
typename PointCloudTarget::ConstPtr PointCloudTargetConstPtr
Abstract CorrespondenceEstimationBase class.
PointCloudTargetConstPtr target_
CorrespondenceEstimationBase()
const std::string & getClassName() const
IndicesPtr target_indices_
shared_ptr< CorrespondenceEstimationBase< PointSource, PointTarget, Scalar > > Ptr
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, 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