Point Cloud Library (PCL)
1.11.1-dev
|
42 #include <pcl/registration/correspondence_rejection.h>
43 #include <pcl/conversions.h>
45 #include <pcl/point_cloud.h>
50 namespace registration {
71 using Ptr = shared_ptr<CorrespondenceRejectorVarTrimmed>;
72 using ConstPtr = shared_ptr<const CorrespondenceRejectorVarTrimmed>;
76 : trimmed_distance_(0), factor_(), min_ratio_(0.05), max_ratio_(0.95), lambda_(0.95)
78 rejection_name_ =
"CorrespondenceRejectorVarTrimmed";
95 return trimmed_distance_;
102 template <
typename Po
intT>
106 if (!data_container_)
108 static_pointer_cast<DataContainer<PointT>>(data_container_)->setInputSource(cloud);
115 template <
typename Po
intT>
119 if (!data_container_)
121 static_pointer_cast<DataContainer<PointT>>(data_container_)->setInputTarget(target);
137 setInputSource<PointXYZ>(cloud);
153 setInputTarget<PointXYZ>(cloud);
163 template <
typename Po
intT>
166 bool force_no_recompute =
false)
168 static_pointer_cast<DataContainer<PointT>>(data_container_)
169 ->setSearchMethodTarget(tree, force_no_recompute);
221 getRemainingCorrespondences(*input_correspondences_, correspondences);
259 optimizeInlierRatio(std::vector<double>& dists)
const;
264 #include <pcl/registration/impl/correspondence_rejection_var_trimmed.hpp>
shared_ptr< CorrespondenceRejector > Ptr
shared_ptr< const CorrespondenceRejector > ConstPtr
double factor_
The factor for correspondence rejection.
double max_ratio_
The maximum overlap ratio between the input and target clouds.
void setTargetPoints(pcl::PCLPointCloud2::ConstPtr cloud2) override
Method for setting the target cloud.
double getMinRatio() const
brief get the minimum overlap ratio
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...
DataContainerPtr data_container_
A pointer to the DataContainer object containing the input and target point clouds.
double lambda_
part of the term that balances the root mean square difference.
const std::string & getClassName() const
Get a string representation of the name of this class.
void setSourcePoints(pcl::PCLPointCloud2::ConstPtr cloud2) override
Blob method for setting the source cloud.
PointCloud represents the base class in PCL for storing collections of 3D points.
shared_ptr< KdTree< PointT, Tree > > Ptr
shared_ptr< DataContainerInterface > Ptr
double trimmed_distance_
The inlier distance threshold (based on the computed trim factor) between two correspondent points in...
DataContainerInterface::Ptr DataContainerPtr
void setMinRatio(double ratio)
brief set the minimum overlap ratio
void setMaxRatio(double ratio)
brief set the maximum overlap ratio
shared_ptr< const ::pcl::PCLPointCloud2 > ConstPtr
DataContainer is a container for the input and target point clouds and implements the interface to co...
bool requiresTargetPoints() const override
See if this rejector requires a target cloud.
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...
void applyRejection(pcl::Correspondences &correspondences) override
Apply the rejection algorithm.
CorrespondenceRejectorVarTrimmed()
Empty constructor.
CorrespondenceRejectoVarTrimmed implements a simple correspondence rejection method by considering as...
shared_ptr< PointCloud< PointT > > Ptr
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.
double getTrimFactor() const
Get the computed inlier ratio used for thresholding in correspondence rejection.
shared_ptr< const PointCloud< PointT > > ConstPtr
double min_ratio_
The minimum overlap ratio between the input and target clouds.
bool requiresSourcePoints() const override
See if this rejector requires source points.
double getMaxRatio() const
brief get the maximum overlap ratio
std::vector< pcl::Correspondence, Eigen::aligned_allocator< pcl::Correspondence > > Correspondences
CorrespondencesConstPtr input_correspondences_
The input correspondences.
std::string rejection_name_
The name of the rejection method.
Defines functions, macros and traits for allocating and using memory.
double getTrimmedDistance() const
Get the trimmed distance used for thresholding in correspondence rejection.
CorrespondenceRejector represents the base class for correspondence rejection methods
void fromPCLPointCloud2(const pcl::PCLPointCloud2 &msg, pcl::PointCloud< PointT > &cloud, const MsgFieldMap &field_map)
Convert a PCLPointCloud2 binary data blob into a pcl::PointCloud<T> object using a field_map.