Point Cloud Library (PCL)  1.11.0-dev
List of all members | Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes
pcl::registration::CorrespondenceRejectorSurfaceNormal Class Reference

CorrespondenceRejectorSurfaceNormal implements a simple correspondence rejection method based on the angle between the normals at correspondent points. More...

#include <pcl/registration/correspondence_rejection_surface_normal.h>

+ Inheritance diagram for pcl::registration::CorrespondenceRejectorSurfaceNormal:

Public Types

using Ptr = shared_ptr< CorrespondenceRejectorSurfaceNormal >
 
using ConstPtr = shared_ptr< const CorrespondenceRejectorSurfaceNormal >
 
- Public Types inherited from pcl::registration::CorrespondenceRejector
using Ptr = shared_ptr< CorrespondenceRejector >
 
using ConstPtr = shared_ptr< const CorrespondenceRejector >
 

Public Member Functions

 CorrespondenceRejectorSurfaceNormal ()
 Empty constructor. More...
 
void getRemainingCorrespondences (const pcl::Correspondences &original_correspondences, pcl::Correspondences &remaining_correspondences) override
 Get a list of valid correspondences after rejection from the original set of correspondences. More...
 
void setThreshold (double threshold)
 Set the thresholding angle between the normals for correspondence rejection. More...
 
double getThreshold () const
 Get the thresholding angle between the normals for correspondence rejection. More...
 
template<typename PointT , typename NormalT >
void initializeDataContainer ()
 Initialize the data container object for the point type and the normal type. More...
 
template<typename PointT >
void setInputCloud (const typename pcl::PointCloud< PointT >::ConstPtr &input)
 Provide a source point cloud dataset (must contain XYZ data!), used to compute the correspondence distance. More...
 
template<typename PointT >
void setInputSource (const typename pcl::PointCloud< PointT >::ConstPtr &input)
 Provide a source point cloud dataset (must contain XYZ data!), used to compute the correspondence distance. More...
 
template<typename PointT >
pcl::PointCloud< PointT >::ConstPtr getInputSource () const
 Get the target input point cloud. More...
 
template<typename PointT >
void setInputTarget (const typename pcl::PointCloud< PointT >::ConstPtr &target)
 Provide a target point cloud dataset (must contain XYZ data!), used to compute the correspondence distance. More...
 
template<typename PointT >
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. More...
 
template<typename PointT >
pcl::PointCloud< PointT >::ConstPtr getInputTarget () const
 Get the target input point cloud. More...
 
template<typename PointT , typename NormalT >
void setInputNormals (const typename pcl::PointCloud< NormalT >::ConstPtr &normals)
 Set the normals computed on the input point cloud. More...
 
template<typename NormalT >
pcl::PointCloud< NormalT >::Ptr getInputNormals () const
 Get the normals computed on the input point cloud. More...
 
template<typename PointT , typename NormalT >
void setTargetNormals (const typename pcl::PointCloud< NormalT >::ConstPtr &normals)
 Set the normals computed on the target point cloud. More...
 
template<typename NormalT >
pcl::PointCloud< NormalT >::Ptr getTargetNormals () const
 Get the normals computed on the target point cloud. More...
 
bool requiresSourcePoints () const override
 See if this rejector requires source points. More...
 
void setSourcePoints (pcl::PCLPointCloud2::ConstPtr cloud2) override
 Blob method for setting the source cloud. More...
 
bool requiresTargetPoints () const override
 See if this rejector requires a target cloud. More...
 
void setTargetPoints (pcl::PCLPointCloud2::ConstPtr cloud2) override
 Method for setting the target cloud. More...
 
bool requiresSourceNormals () const override
 See if this rejector requires source normals. More...
 
void setSourceNormals (pcl::PCLPointCloud2::ConstPtr cloud2) override
 Blob method for setting the source normals. More...
 
bool requiresTargetNormals () const override
 See if this rejector requires target normals. More...
 
void setTargetNormals (pcl::PCLPointCloud2::ConstPtr cloud2) override
 Method for setting the target normals. More...
 
- Public Member Functions inherited from pcl::registration::CorrespondenceRejector
 CorrespondenceRejector ()
 Empty constructor. More...
 
virtual ~CorrespondenceRejector ()
 Empty destructor. More...
 
virtual void setInputCorrespondences (const CorrespondencesConstPtr &correspondences)
 Provide a pointer to the vector of the input correspondences. More...
 
CorrespondencesConstPtr getInputCorrespondences ()
 Get a pointer to the vector of the input correspondences. More...
 
void getCorrespondences (pcl::Correspondences &correspondences)
 Run correspondence rejection. More...
 
void getRejectedQueryIndices (const pcl::Correspondences &correspondences, std::vector< int > &indices)
 Determine the indices of query points of correspondences that have been rejected, i.e., the difference between the input correspondences (set via setInputCorrespondences) and the given correspondence vector. More...
 
const std::string & getClassName () const
 Get a string representation of the name of this class. More...
 

Protected Types

using DataContainerPtr = DataContainerInterface::Ptr
 

Protected Member Functions

void applyRejection (pcl::Correspondences &correspondences) override
 Apply the rejection algorithm. More...
 

Protected Attributes

double threshold_
 The median distance threshold between two correspondent points in source <-> target. More...
 
DataContainerPtr data_container_
 A pointer to the DataContainer object containing the input and target point clouds. More...
 
- Protected Attributes inherited from pcl::registration::CorrespondenceRejector
std::string rejection_name_
 The name of the rejection method. More...
 
CorrespondencesConstPtr input_correspondences_
 The input correspondences. More...
 

Detailed Description

CorrespondenceRejectorSurfaceNormal implements a simple correspondence rejection method based on the angle between the normals at correspondent points.

Note
If setInputCloud and setInputTarget are given, then the distances between correspondences will be estimated using the given XYZ data, and not read from the set of input correspondences.
Author
Aravindhan K Krishnan (original code from libpointmatcher: https://github.com/ethz-asl/libpointmatcher)

Definition at line 62 of file correspondence_rejection_surface_normal.h.

Member Typedef Documentation

◆ ConstPtr

Definition at line 70 of file correspondence_rejection_surface_normal.h.

◆ DataContainerPtr

Definition at line 318 of file correspondence_rejection_surface_normal.h.

◆ Ptr

Definition at line 69 of file correspondence_rejection_surface_normal.h.

Constructor & Destructor Documentation

◆ CorrespondenceRejectorSurfaceNormal()

pcl::registration::CorrespondenceRejectorSurfaceNormal::CorrespondenceRejectorSurfaceNormal ( )
inline

Empty constructor.

Sets the threshold to 1.0.

Definition at line 73 of file correspondence_rejection_surface_normal.h.

Member Function Documentation

◆ applyRejection()

void pcl::registration::CorrespondenceRejectorSurfaceNormal::applyRejection ( pcl::Correspondences correspondences)
inlineoverrideprotectedvirtual

Apply the rejection algorithm.

Parameters
[out]correspondencesthe set of resultant correspondences.

Implements pcl::registration::CorrespondenceRejector.

Definition at line 310 of file correspondence_rejection_surface_normal.h.

◆ getInputNormals()

template<typename NormalT >
pcl::PointCloud<NormalT>::Ptr pcl::registration::CorrespondenceRejectorSurfaceNormal::getInputNormals ( ) const
inline

Get the normals computed on the input point cloud.

Definition at line 203 of file correspondence_rejection_surface_normal.h.

◆ getInputSource()

template<typename PointT >
pcl::PointCloud<PointT>::ConstPtr pcl::registration::CorrespondenceRejectorSurfaceNormal::getInputSource ( ) const
inline

Get the target input point cloud.

Definition at line 136 of file correspondence_rejection_surface_normal.h.

◆ getInputTarget()

template<typename PointT >
pcl::PointCloud<PointT>::ConstPtr pcl::registration::CorrespondenceRejectorSurfaceNormal::getInputTarget ( ) const
inline

Get the target input point cloud.

Definition at line 177 of file correspondence_rejection_surface_normal.h.

◆ getRemainingCorrespondences()

void pcl::registration::CorrespondenceRejectorSurfaceNormal::getRemainingCorrespondences ( const pcl::Correspondences original_correspondences,
pcl::Correspondences remaining_correspondences 
)
overridevirtual

Get a list of valid correspondences after rejection from the original set of correspondences.

Parameters
[in]original_correspondencesthe set of initial correspondences given
[out]remaining_correspondencesthe resultant filtered set of remaining correspondences

Implements pcl::registration::CorrespondenceRejector.

◆ getTargetNormals()

template<typename NormalT >
pcl::PointCloud<NormalT>::Ptr pcl::registration::CorrespondenceRejectorSurfaceNormal::getTargetNormals ( ) const
inline

Get the normals computed on the target point cloud.

Definition at line 229 of file correspondence_rejection_surface_normal.h.

◆ getThreshold()

double pcl::registration::CorrespondenceRejectorSurfaceNormal::getThreshold ( ) const
inline

Get the thresholding angle between the normals for correspondence rejection.

Definition at line 95 of file correspondence_rejection_surface_normal.h.

◆ initializeDataContainer()

template<typename PointT , typename NormalT >
void pcl::registration::CorrespondenceRejectorSurfaceNormal::initializeDataContainer ( )
inline

Initialize the data container object for the point type and the normal type.

Definition at line 99 of file correspondence_rejection_surface_normal.h.

◆ requiresSourceNormals()

bool pcl::registration::CorrespondenceRejectorSurfaceNormal::requiresSourceNormals ( ) const
inlineoverridevirtual

See if this rejector requires source normals.

Reimplemented from pcl::registration::CorrespondenceRejector.

Definition at line 274 of file correspondence_rejection_surface_normal.h.

◆ requiresSourcePoints()

bool pcl::registration::CorrespondenceRejectorSurfaceNormal::requiresSourcePoints ( ) const
inlineoverridevirtual

See if this rejector requires source points.

Reimplemented from pcl::registration::CorrespondenceRejector.

Definition at line 242 of file correspondence_rejection_surface_normal.h.

◆ requiresTargetNormals()

bool pcl::registration::CorrespondenceRejectorSurfaceNormal::requiresTargetNormals ( ) const
inlineoverridevirtual

See if this rejector requires target normals.

Reimplemented from pcl::registration::CorrespondenceRejector.

Definition at line 290 of file correspondence_rejection_surface_normal.h.

◆ requiresTargetPoints()

bool pcl::registration::CorrespondenceRejectorSurfaceNormal::requiresTargetPoints ( ) const
inlineoverridevirtual

See if this rejector requires a target cloud.

Reimplemented from pcl::registration::CorrespondenceRejector.

Definition at line 258 of file correspondence_rejection_surface_normal.h.

◆ setInputCloud()

template<typename PointT >
void pcl::registration::CorrespondenceRejectorSurfaceNormal::setInputCloud ( const typename pcl::PointCloud< PointT >::ConstPtr input)
inline

Provide a source point cloud dataset (must contain XYZ data!), used to compute the correspondence distance.


Parameters
[in]inputa cloud containing XYZ data
Deprecated:
Scheduled for removal in version 1 . 12 : "pcl::registration::CorrespondenceRejectorSurfaceNormal::setInputCloud is deprecated. Please use setInputSource instead"

Definition at line 110 of file correspondence_rejection_surface_normal.h.

◆ setInputNormals()

template<typename PointT , typename NormalT >
void pcl::registration::CorrespondenceRejectorSurfaceNormal::setInputNormals ( const typename pcl::PointCloud< NormalT >::ConstPtr normals)
inline

Set the normals computed on the input point cloud.

Parameters
[in]normalsthe normals computed for the input cloud

Definition at line 191 of file correspondence_rejection_surface_normal.h.

◆ setInputSource()

template<typename PointT >
void pcl::registration::CorrespondenceRejectorSurfaceNormal::setInputSource ( const typename pcl::PointCloud< PointT >::ConstPtr input)
inline

Provide a source point cloud dataset (must contain XYZ data!), used to compute the correspondence distance.


Parameters
[in]inputa cloud containing XYZ data

Definition at line 124 of file correspondence_rejection_surface_normal.h.

◆ setInputTarget()

template<typename PointT >
void pcl::registration::CorrespondenceRejectorSurfaceNormal::setInputTarget ( const typename pcl::PointCloud< PointT >::ConstPtr target)
inline

Provide a target point cloud dataset (must contain XYZ data!), used to compute the correspondence distance.


Parameters
[in]targeta cloud containing XYZ data

Definition at line 150 of file correspondence_rejection_surface_normal.h.

◆ setSearchMethodTarget()

template<typename PointT >
void pcl::registration::CorrespondenceRejectorSurfaceNormal::setSearchMethodTarget ( const typename pcl::search::KdTree< PointT >::Ptr tree,
bool  force_no_recompute = false 
)
inline

Provide a pointer to the search object used to find correspondences in the target cloud.

Parameters
[in]treea pointer to the spatial search object.
[in]force_no_recomputeIf set to true, this tree will NEVER be recomputed, regardless of calls to setInputTarget. Only use if you are confident that the tree will be set correctly.

Definition at line 168 of file correspondence_rejection_surface_normal.h.

◆ setSourceNormals()

void pcl::registration::CorrespondenceRejectorSurfaceNormal::setSourceNormals ( pcl::PCLPointCloud2::ConstPtr  cloud2)
inlineoverridevirtual

Blob method for setting the source normals.

Reimplemented from pcl::registration::CorrespondenceRejector.

Definition at line 279 of file correspondence_rejection_surface_normal.h.

References pcl::fromPCLPointCloud2().

◆ setSourcePoints()

void pcl::registration::CorrespondenceRejectorSurfaceNormal::setSourcePoints ( pcl::PCLPointCloud2::ConstPtr  cloud2)
inlineoverridevirtual

Blob method for setting the source cloud.

Reimplemented from pcl::registration::CorrespondenceRejector.

Definition at line 247 of file correspondence_rejection_surface_normal.h.

References pcl::fromPCLPointCloud2().

◆ setTargetNormals() [1/2]

template<typename PointT , typename NormalT >
void pcl::registration::CorrespondenceRejectorSurfaceNormal::setTargetNormals ( const typename pcl::PointCloud< NormalT >::ConstPtr normals)
inline

Set the normals computed on the target point cloud.

Parameters
[in]normalsthe normals computed for the input cloud

Definition at line 217 of file correspondence_rejection_surface_normal.h.

◆ setTargetNormals() [2/2]

void pcl::registration::CorrespondenceRejectorSurfaceNormal::setTargetNormals ( pcl::PCLPointCloud2::ConstPtr  cloud2)
inlineoverridevirtual

Method for setting the target normals.

Reimplemented from pcl::registration::CorrespondenceRejector.

Definition at line 295 of file correspondence_rejection_surface_normal.h.

References pcl::fromPCLPointCloud2().

◆ setTargetPoints()

void pcl::registration::CorrespondenceRejectorSurfaceNormal::setTargetPoints ( pcl::PCLPointCloud2::ConstPtr  cloud2)
inlineoverridevirtual

Method for setting the target cloud.

Reimplemented from pcl::registration::CorrespondenceRejector.

Definition at line 263 of file correspondence_rejection_surface_normal.h.

References pcl::fromPCLPointCloud2().

◆ setThreshold()

void pcl::registration::CorrespondenceRejectorSurfaceNormal::setThreshold ( double  threshold)
inline

Set the thresholding angle between the normals for correspondence rejection.

Parameters
[in]thresholdcosine of the thresholding angle between the normals for rejection

Definition at line 91 of file correspondence_rejection_surface_normal.h.

Member Data Documentation

◆ data_container_

DataContainerPtr pcl::registration::CorrespondenceRejectorSurfaceNormal::data_container_
protected

A pointer to the DataContainer object containing the input and target point clouds.

Definition at line 320 of file correspondence_rejection_surface_normal.h.

◆ threshold_

double pcl::registration::CorrespondenceRejectorSurfaceNormal::threshold_
protected

The median distance threshold between two correspondent points in source <-> target.

Definition at line 316 of file correspondence_rejection_surface_normal.h.


The documentation for this class was generated from the following file: