43 #include <pcl/registration/correspondence_rejection.h>
44 #include <pcl/conversions.h>
45 #include <pcl/memory.h>
48 namespace registration {
67 using Ptr = shared_ptr<CorrespondenceRejectorDistance>;
68 using ConstPtr = shared_ptr<const CorrespondenceRejectorDistance>;
73 rejection_name_ =
"CorrespondenceRejectorDistance";
96 max_distance_ = distance * distance;
104 return std::sqrt(max_distance_);
111 template <
typename Po
intT>
115 if (!data_container_)
124 template <
typename Po
intT>
128 if (!data_container_)
146 setInputSource<PointXYZ>(cloud);
162 setInputTarget<PointXYZ>(cloud);
172 template <
typename Po
intT>
175 bool force_no_recompute =
false)
178 ->setSearchMethodTarget(tree, force_no_recompute);
188 getRemainingCorrespondences(*input_correspondences_, correspondences);
void setSearchMethodTarget(const typename pcl::search::KdTree< PointT >::Ptr &tree, bool force_no_recompute=false)
Provide a pointer to the search object used to find correspondences in the target cloud...
shared_ptr< KdTree< PointT, Tree > > Ptr
shared_ptr< const CorrespondenceRejector > ConstPtr
DataContainer is a container for the input and target point clouds and implements the interface to co...
shared_ptr< PointCloud< PointT > > Ptr
shared_ptr< CorrespondenceRejector > Ptr
virtual void setMaximumDistance(float distance)
Set the maximum distance used for thresholding in correspondence rejection.
CorrespondenceRejector represents the base class for correspondence rejection methods ...
shared_ptr< const ::pcl::PCLPointCloud2 > ConstPtr
DataContainerInterface::Ptr DataContainerPtr
DataContainerPtr data_container_
A pointer to the DataContainer object containing the input and target point clouds.
const std::string & getClassName() const
Get a string representation of the name of this class.
void setTargetPoints(pcl::PCLPointCloud2::ConstPtr cloud2) override
Method for setting the target cloud.
float max_distance_
The maximum distance threshold between two correspondent points in source <-> target.
CorrespondenceRejectorDistance()
Empty constructor.
void applyRejection(pcl::Correspondences &correspondences) override
Apply the rejection algorithm.
float getMaximumDistance() const
Get the maximum distance used for thresholding in correspondence rejection.
PointCloud represents the base class in PCL for storing collections of 3D points. ...
void setInputTarget(const typename pcl::PointCloud< PointT >::ConstPtr &target)
Provide a target point cloud dataset (must contain XYZ data!), used to compute the correspondence dis...
CorrespondenceRejectorDistance implements a simple correspondence rejection method based on threshold...
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 object using a field_map...
shared_ptr< DataContainerInterface > Ptr
void setInputSource(const typename pcl::PointCloud< PointT >::ConstPtr &cloud)
Provide a source point cloud dataset (must contain XYZ data!), used to compute the correspondence dis...
CorrespondencesConstPtr input_correspondences_
The input correspondences.
shared_ptr< const PointCloud< PointT > > ConstPtr
std::string rejection_name_
The name of the rejection method.
std::vector< pcl::Correspondence, Eigen::aligned_allocator< pcl::Correspondence > > Correspondences
bool requiresTargetPoints() const override
See if this rejector requires a target cloud.
bool requiresSourcePoints() const override
See if this rejector requires source points.
void setSourcePoints(pcl::PCLPointCloud2::ConstPtr cloud2) override
Blob method for setting the source cloud.