41 #ifndef PCL_REGISTRATION_CORRESPONDENCE_ESTIMATION_NORMAL_SHOOTING_H_
42 #define PCL_REGISTRATION_CORRESPONDENCE_ESTIMATION_NORMAL_SHOOTING_H_
44 #include <pcl/registration/correspondence_types.h>
45 #include <pcl/registration/correspondence_estimation.h>
49 namespace registration
77 template <
typename Po
intSource,
typename Po
intTarget,
typename NormalT,
typename Scalar =
float>
81 typedef boost::shared_ptr<CorrespondenceEstimationNormalShooting<PointSource, PointTarget, NormalT, Scalar> >
Ptr;
82 typedef boost::shared_ptr<const CorrespondenceEstimationNormalShooting<PointSource, PointTarget, NormalT, Scalar> >
ConstPtr;
116 , source_normals_transformed_ ()
119 corr_name_ =
"CorrespondenceEstimationNormalShooting";
133 inline NormalsConstPtr
146 NormalsPtr cloud (
new PointCloudNormals);
158 double max_distance = std::numeric_limits<double>::max ());
169 double max_distance = std::numeric_limits<double>::max ());
187 virtual boost::shared_ptr< CorrespondenceEstimationBase<PointSource, PointTarget, Scalar> >
208 NormalsConstPtr source_normals_;
211 NormalsPtr source_normals_transformed_;
219 #include <pcl/registration/impl/correspondence_estimation_normal_shooting.hpp>
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...
PointCloudSource::Ptr PointCloudSourcePtr
NormalsConstPtr getSourceNormals() const
Get the normals of the source point cloud.
pcl::search::KdTree< PointTarget >::Ptr KdTreePtr
virtual void determineReciprocalCorrespondences(pcl::Correspondences &correspondences, double max_distance=std::numeric_limits< double >::max())
Determine the reciprocal correspondences between input and target cloud.
virtual boost::shared_ptr< CorrespondenceEstimationBase< PointSource, PointTarget, Scalar > > clone() const
Clone and cast to CorrespondenceEstimationBase.
std::string corr_name_
The correspondence estimation method name.
virtual ~CorrespondenceEstimationNormalShooting()
Empty destructor.
pcl::PointCloud< NormalT > PointCloudNormals
void setSourceNormals(const NormalsConstPtr &normals)
Set the normals computed on the source point cloud.
CorrespondenceEstimationNormalShooting()
Empty constructor.
void setSourceNormals(pcl::PCLPointCloud2::ConstPtr cloud2)
Blob method for setting the source normals.
unsigned int getKSearch() const
Get the number of nearest neighbours considered in the target point cloud for computing correspondenc...
CorrespondenceEstimationNormalShooting computes correspondences as points in the target cloud which h...
bool requiresSourceNormals() const
See if this rejector requires source normals.
boost::shared_ptr< PointCloud< PointSource > > Ptr
pcl::search::KdTree< PointTarget > KdTree
PointCloudTarget::ConstPtr PointCloudTargetConstPtr
boost::shared_ptr< KdTree< PointT, Tree > > Ptr
bool initCompute()
Internal computation initalization.
void setKSearch(unsigned int k)
Set the number of nearest neighbours to be considered in the target point cloud.
PointCloudNormals::ConstPtr NormalsConstPtr
boost::shared_ptr< const CorrespondenceEstimationNormalShooting< PointSource, PointTarget, NormalT, Scalar > > ConstPtr
std::vector< pcl::Correspondence, Eigen::aligned_allocator< pcl::Correspondence > > Correspondences
boost::shared_ptr< const PointCloud< PointSource > > ConstPtr
PointCloudTarget::Ptr PointCloudTargetPtr
boost::shared_ptr< ::pcl::PCLPointCloud2 const > ConstPtr
PointCloudSource::ConstPtr PointCloudSourceConstPtr
void determineCorrespondences(pcl::Correspondences &correspondences, double max_distance=std::numeric_limits< double >::max())
Determine the correspondences between input and target cloud.
pcl::PointCloud< PointTarget > PointCloudTarget
boost::shared_ptr< CorrespondenceEstimationNormalShooting< PointSource, PointTarget, NormalT, Scalar > > Ptr
pcl::PointCloud< PointSource > PointCloudSource
PointCloudNormals::Ptr NormalsPtr
Abstract CorrespondenceEstimationBase class.