40 #ifndef PCL_REGISTRATION_CORRESPONDENCE_ESTIMATION_BACK_PROJECTION_H_
41 #define PCL_REGISTRATION_CORRESPONDENCE_ESTIMATION_BACK_PROJECTION_H_
43 #include <pcl/registration/correspondence_types.h>
44 #include <pcl/registration/correspondence_estimation.h>
48 namespace registration
55 template <
typename Po
intSource,
typename Po
intTarget,
typename NormalT,
typename Scalar =
float>
59 typedef boost::shared_ptr<CorrespondenceEstimationBackProjection<PointSource, PointTarget, NormalT, Scalar> >
Ptr;
60 typedef boost::shared_ptr<const CorrespondenceEstimationBackProjection<PointSource, PointTarget, NormalT, Scalar> >
ConstPtr;
94 , source_normals_transformed_ ()
98 corr_name_ =
"CorrespondenceEstimationBackProjection";
112 inline NormalsConstPtr
123 inline NormalsConstPtr
136 NormalsPtr cloud (
new PointCloudNormals);
150 NormalsPtr cloud (
new PointCloudNormals);
162 double max_distance = std::numeric_limits<double>::max ());
173 double max_distance = std::numeric_limits<double>::max ());
191 virtual boost::shared_ptr< CorrespondenceEstimationBase<PointSource, PointTarget, Scalar> >
212 NormalsConstPtr source_normals_;
215 NormalsPtr source_normals_transformed_;
218 NormalsConstPtr target_normals_;
226 #include <pcl/registration/impl/correspondence_estimation_backprojection.hpp>
pcl::search::KdTree< PointTarget >::Ptr KdTreePtr
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 setSourceNormals(const NormalsConstPtr &normals)
Set the normals computed on the source point cloud.
boost::shared_ptr< PointCloud< PointSource > > Ptr
PointCloudTarget::ConstPtr PointCloudTargetConstPtr
CorrespondenceEstimationBackProjection()
Empty constructor.
pcl::PointCloud< PointSource > PointCloudSource
CorrespondenceEstimationBackprojection computes correspondences as points in the target cloud which h...
PointCloudSource::Ptr PointCloudSourcePtr
std::string corr_name_
The correspondence estimation method name.
This file defines compatibility wrappers for low level I/O functions.
unsigned int getKSearch() const
Get the number of nearest neighbours considered in the target point cloud for computing correspondenc...
pcl::PointCloud< NormalT > PointCloudNormals
virtual boost::shared_ptr< CorrespondenceEstimationBase< PointSource, PointTarget, Scalar > > clone() const
Clone and cast to CorrespondenceEstimationBase.
PointCloudTarget::Ptr PointCloudTargetPtr
PointCloudNormals::ConstPtr NormalsConstPtr
pcl::search::KdTree< PointTarget > KdTree
virtual ~CorrespondenceEstimationBackProjection()
Empty destructor.
boost::shared_ptr< const PointCloud< PointSource > > ConstPtr
boost::shared_ptr< const CorrespondenceEstimationBackProjection< PointSource, PointTarget, NormalT, Scalar > > ConstPtr
PointCloudNormals::Ptr NormalsPtr
PointCloudSource::ConstPtr PointCloudSourceConstPtr
void determineCorrespondences(pcl::Correspondences &correspondences, double max_distance=std::numeric_limits< double >::max())
Determine the correspondences between input and target cloud.
boost::shared_ptr< KdTree< PointT, Tree > > Ptr
void setTargetNormals(const NormalsConstPtr &normals)
Set the normals computed on the target point cloud.
std::vector< pcl::Correspondence, Eigen::aligned_allocator< pcl::Correspondence > > Correspondences
NormalsConstPtr getSourceNormals() const
Get the normals of the source point cloud.
pcl::PointCloud< PointTarget > PointCloudTarget
boost::shared_ptr< ::pcl::PCLPointCloud2 const > ConstPtr
void setTargetNormals(pcl::PCLPointCloud2::ConstPtr cloud2)
Method for setting the target normals.
boost::shared_ptr< CorrespondenceEstimationBackProjection< PointSource, PointTarget, NormalT, Scalar > > Ptr
NormalsConstPtr getTargetNormals() const
Get the normals of the target point cloud.
void setKSearch(unsigned int k)
Set the number of nearest neighbours to be considered in 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.
bool requiresTargetNormals() const
See if this rejector requires target normals.
bool requiresSourceNormals() const
See if this rejector requires source normals.
bool initCompute()
Internal computation initialization.
void setSourceNormals(pcl::PCLPointCloud2::ConstPtr cloud2)
Blob method for setting the source normals.
Abstract CorrespondenceEstimationBase class.