Loading...
Searching...
No Matches
pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT > Class Template Reference
Module features

FLARELocalReferenceFrameEstimation implements the Fast LocAl Reference framE algorithm for local reference frame estimation as described here: More...

`#include <pcl/features/flare.h>`

Inheritance diagram for pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >:

## Public Member Functions

| FLARELocalReferenceFrameEstimation ()
| Constructor.
void | setTangentRadius (float radius)
| Set the maximum distance of the points used to estimate the x_axis of the FLARE Reference Frame for a given point.
float | getTangentRadius () const
| Get the maximum distance of the points used to estimate the x_axis of the FLARE Reference Frame for a given point.
void | setMarginThresh (float margin_thresh)
| Set the percentage of the search tangent radius after which a point is considered part of the support.
float | getMarginThresh () const
| Get the percentage of the search tangent radius after which a point is considered part of the support.
void | setMinNeighboursForNormalAxis (int min_neighbors_for_normal_axis)
| Set min number of neighbours required for the computation of Z axis.
int | getMinNeighboursForNormalAxis () const
| Get min number of neighbours required for the computation of Z axis.
void | setMinNeighboursForTangentAxis (int min_neighbors_for_tangent_axis)
| Set min number of neighbours required for the computation of X axis.
int | getMinNeighboursForTangentAxis () const
| Get min number of neighbours required for the computation of X axis.
void | setSearchSampledSurface (const PointCloudInConstPtr &cloud)
| Provide a pointer to the dataset used for the estimation of X axis.
const PointCloudInConstPtr & | getSearchSampledSurface () const
| Get a pointer to the sampled_surface_ cloud dataset.
void | setSearchMethodForSampledSurface (const KdTreePtr &tree)
| Provide a pointer to the search object linked to sampled_surface.
const KdTreePtr & | getSearchMethodForSampledSurface () const
| Get a pointer to the search method used for the estimation of x axis.
const std::vector< SignedDistanceT > & | getSignedDistancesFromHighestPoints () const
| Get the signed distances of the highest points from the fitted planes.
Public Member Functions inherited from pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >
| FeatureFromNormals ()
| Empty constructor.
void | setInputNormals (const PointCloudNConstPtr &normals)
| Provide a pointer to the input dataset that contains the point normals of the XYZ dataset.
PointCloudNConstPtr | getInputNormals () const
| Get a pointer to the normals of the input XYZ point cloud dataset.
Public Member Functions inherited from pcl::Feature< PointInT, PointOutT >
| Feature ()
| Empty constructor.
void | setSearchSurface (const PointCloudInConstPtr &cloud)
| Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset.
PointCloudInConstPtr | getSearchSurface () const
| Get a pointer to the surface point cloud dataset.
void | setSearchMethod (const KdTreePtr &tree)
| Provide a pointer to the search object.
KdTreePtr | getSearchMethod () const
| Get a pointer to the search method used.
double | getSearchParameter () const
| Get the internal search parameter.
void | setKSearch (int k)
| Set the number of k nearest neighbors to use for the feature estimation.
int | getKSearch () const
| get the number of k nearest neighbors used for the feature estimation.
void | setRadiusSearch (double radius)
| Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation.
double | getRadiusSearch () const
| Get the sphere radius used for determining the neighbors.
void | compute (PointCloudOut &output)
| Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod ()
Public Member Functions inherited from pcl::PCLBase< PointInT >
| PCLBase ()
| Empty constructor.
| PCLBase (const PCLBase &base)
| Copy constructor.
virtual | ~PCLBase ()=default
| Destructor.
virtual void | setInputCloud (const PointCloudConstPtr &cloud)
| Provide a pointer to the input dataset.
PointCloudConstPtr const | getInputCloud () const
| Get a pointer to the input point cloud dataset.
virtual void | setIndices (const IndicesPtr &indices)
| Provide a pointer to the vector of indices that represents the input data.
virtual void | setIndices (const IndicesConstPtr &indices)
| Provide a pointer to the vector of indices that represents the input data.
virtual void | setIndices (const PointIndicesConstPtr &indices)
| Provide a pointer to the vector of indices that represents the input data.
virtual void | setIndices (std::size_t row_start, std::size_t col_start, std::size_t nb_rows, std::size_t nb_cols)
| Set the indices for the points laying within an interest region of the point cloud.
IndicesPtr | getIndices ()
| Get a pointer to the vector of indices used.
IndicesConstPtr const | getIndices () const
| Get a pointer to the vector of indices used.
const PointInT & | operator[] (std::size_t pos) const
| Override PointCloud operator[] to shorten code.

## Protected Types

using | PointCloudSignedDistance = pcl::PointCloud< SignedDistanceT >
using | PointCloudSignedDistancePtr = typename PointCloudSignedDistance::Ptr
using | Ptr = shared_ptr< FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT > >
using | ConstPtr = shared_ptr< const FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT > >

## Protected Member Functions

bool | initCompute () override
| This method should get called before starting the actual computation.
bool | deinitCompute () override
| This method should get called after the actual computation is ended.
SignedDistanceT | computePointLRF (const int index, Eigen::Matrix3f &lrf)
| Estimate the LRF descriptor for a given point based on its spatial neighborhood of 3D points with normals.
void | computeFeature (PointCloudOut &output) override
| Abstract feature estimation method.
Protected Member Functions inherited from pcl::Feature< PointInT, PointOutT >
const std::string & | getClassName () const
| Get a string representation of the name of this class.
int | searchForNeighbors (std::size_t index, double parameter, pcl::Indices &indices, std::vector< float > &distances) const
| Search for k-nearest neighbors using the spatial locator from setSearchmethod, and the given surface from setSearchSurface.
int | searchForNeighbors (const PointCloudIn &cloud, std::size_t index, double parameter, pcl::Indices &indices, std::vector< float > &distances) const
| Search for k-nearest neighbors using the spatial locator from setSearchmethod, and the given surface from setSearchSurface.
Protected Member Functions inherited from pcl::PCLBase< PointInT >
bool | initCompute ()
| This method should get called before starting the actual computation.
bool | deinitCompute ()
| This method should get called after finishing the actual computation.

## Additional Inherited Members

Public Types inherited from pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >
using | PointCloudN = pcl::PointCloud< PointNT >
using | PointCloudNPtr = typename PointCloudN::Ptr
using | PointCloudNConstPtr = typename PointCloudN::ConstPtr
using | Ptr = shared_ptr< FeatureFromNormals< PointInT, PointNT, PointOutT > >
using | ConstPtr = shared_ptr< const FeatureFromNormals< PointInT, PointNT, PointOutT > >
Public Types inherited from pcl::Feature< PointInT, PointOutT >
using | BaseClass = PCLBase< PointInT >
using | Ptr = shared_ptr< Feature< PointInT, PointOutT > >
using | ConstPtr = shared_ptr< const Feature< PointInT, PointOutT > >
using | KdTree = pcl::search::Search< PointInT >
using | KdTreePtr = typename KdTree::Ptr
using | PointCloudIn = pcl::PointCloud< PointInT >
using | PointCloudInPtr = typename PointCloudIn::Ptr
using | PointCloudInConstPtr = typename PointCloudIn::ConstPtr
using | PointCloudOut = pcl::PointCloud< PointOutT >
using | SearchMethod = std::function< int(std::size_t, double, pcl::Indices &, std::vector< float > &)>
using | SearchMethodSurface = std::function< int(const PointCloudIn &cloud, std::size_t index, double, pcl::Indices &, std::vector< float > &)>
Public Types inherited from pcl::PCLBase< PointInT >
using | PointCloud = pcl::PointCloud< PointInT >
using | PointCloudPtr = typename PointCloud::Ptr
using | PointCloudConstPtr = typename PointCloud::ConstPtr
using | PointIndicesPtr = PointIndices::Ptr
using | PointIndicesConstPtr = PointIndices::ConstPtr
Protected Attributes inherited from pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >
PointCloudNConstPtr | normals_
| A pointer to the input dataset that contains the point normals of the XYZ dataset.
Protected Attributes inherited from pcl::Feature< PointInT, PointOutT >
std::string | feature_name_
| The feature name.
SearchMethodSurface | search_method_surface_
| The search method template for points.
PointCloudInConstPtr | surface_
| An input point cloud describing the surface that is to be used for nearest neighbors estimation.
KdTreePtr | tree_
| A pointer to the spatial search object.
double | search_parameter_
| The actual search parameter (from either search_radius_ or k_).
double | search_radius_
| The nearest neighbors search radius for each point.
int | k_
| The number of K nearest neighbors to use for each point.
bool | fake_surface_
| If no surface is given, we use the input PointCloud as the surface.
Protected Attributes inherited from pcl::PCLBase< PointInT >
PointCloudConstPtr | input_
| The input point cloud dataset.
IndicesPtr | indices_
| A pointer to the vector of point indices to use.
bool | use_indices_
| Set to true if point indices are used.
bool | fake_indices_
| If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud.

## Detailed Description

template<typename PointInT, typename PointNT, typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>
class pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >

FLARELocalReferenceFrameEstimation implements the Fast LocAl Reference framE algorithm for local reference frame estimation as described here:

- A. Petrelli, L. Di Stefano, "A repeatable and efficient canonical reference for surface matching", 3DimPVT, 2012

FLARE algorithm is deployed in ReLOC algorithm proposed in:

Petrelli A., Di Stefano L., "Pairwise registration by local orientation cues", Computer Graphics Forum, 2015.

Author
  Alioscia Petrelli

Definition at line 64 of file flare.h.

## Member Typedef Documentation

## ConstPtr

template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>

using pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >::ConstPtr = shared_ptr<const FLARELocalReferenceFrameEstimation<PointInT, PointNT, PointOutT> >

protected

Definition at line 88 of file flare.h.

## PointCloudSignedDistance

template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>

using pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >::PointCloudSignedDistance = pcl::PointCloud<SignedDistanceT>

protected

Definition at line 84 of file flare.h.

## PointCloudSignedDistancePtr

template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>

using pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >::PointCloudSignedDistancePtr = typename PointCloudSignedDistance::Ptr

protected

Definition at line 85 of file flare.h.

## Ptr

template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>

using pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >::Ptr = shared_ptr<FLARELocalReferenceFrameEstimation<PointInT, PointNT, PointOutT> >

protected

Definition at line 87 of file flare.h.

## Constructor & Destructor Documentation

## FLARELocalReferenceFrameEstimation()

template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>

pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >::FLARELocalReferenceFrameEstimation | ( |  | ) |

inline

Constructor.

Definition at line 92 of file flare.h.

References pcl::Feature< PointInT, PointOutT >::feature_name_.

## Member Function Documentation

## computeFeature()

template<typename PointInT , typename PointNT , typename PointOutT , typename SignedDistanceT >

void pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >::computeFeature | ( | PointCloudOut & | output | ) |

override protected virtual

Abstract feature estimation method.

Parameters

  [out] | output | the resultant features

Implements pcl::Feature< PointInT, PointOutT >.

Definition at line 233 of file flare.hpp.

## computePointLRF()

template<typename PointInT , typename PointNT , typename PointOutT , typename SignedDistanceT >

SignedDistanceT pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >::computePointLRF | ( | const int | index,
|  | Eigen::Matrix3f & | lrf
| ) |  |

protected

Estimate the LRF descriptor for a given point based on its spatial neighborhood of 3D points with normals.

Parameters

  [in] | index | the index of the point in input_
  [out] | lrf | the resultant local reference frame

Returns
  signed distance of the highest point from the fitted plane. Max if the lrf is not computable.

Definition at line 110 of file flare.hpp.

References pcl::isFinite(), pcl::geometry::projectedAsUnitVector(), and pcl::geometry::randomOrthogonalAxis().

## deinitCompute()

template<typename PointInT , typename PointNT , typename PointOutT , typename SignedDistanceT >

bool pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >::deinitCompute | ( |  | ) |

override protected virtual

This method should get called after the actual computation is ended.

Reimplemented from pcl::Feature< PointInT, PointOutT >.

Definition at line 91 of file flare.hpp.

## getMarginThresh()

template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>

float pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >::getMarginThresh | ( |  | ) | const

inline

Get the percentage of the search tangent radius after which a point is considered part of the support.

Returns
  The percentage of the search tangent radius after which a point is considered part of the support.

Definition at line 137 of file flare.h.

## getMinNeighboursForNormalAxis()

template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>

int pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >::getMinNeighboursForNormalAxis | ( |  | ) | const

inline

Get min number of neighbours required for the computation of Z axis.

Returns
  min number of neighbours required for the computation of Z axis.

Definition at line 158 of file flare.h.

## getMinNeighboursForTangentAxis()

template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>

int pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >::getMinNeighboursForTangentAxis | ( |  | ) | const

inline

Get min number of neighbours required for the computation of X axis.

Returns
  min number of neighbours required for the computation of X axis.

Definition at line 179 of file flare.h.

## getSearchMethodForSampledSurface()

template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>

const KdTreePtr & pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >::getSearchMethodForSampledSurface | ( |  | ) | const

inline

Get a pointer to the search method used for the estimation of x axis.

Definition at line 214 of file flare.h.

## getSearchSampledSurface()

template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>

const PointCloudInConstPtr & pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >::getSearchSampledSurface | ( |  | ) | const

inline

Get a pointer to the sampled_surface_ cloud dataset.

Definition at line 201 of file flare.h.

## getSignedDistancesFromHighestPoints()

template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>

const std::vector< SignedDistanceT > & pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >::getSignedDistancesFromHighestPoints | ( |  | ) | const

inline

Get the signed distances of the highest points from the fitted planes.

Definition at line 221 of file flare.h.

## getTangentRadius()

template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>

float pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >::getTangentRadius | ( |  | ) | const

inline

Get the maximum distance of the points used to estimate the x_axis of the FLARE Reference Frame for a given point.

Returns
  The search radius for x axis.

Definition at line 117 of file flare.h.

## initCompute()

template<typename PointInT , typename PointNT , typename PointOutT , typename SignedDistanceT >

bool pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >::initCompute | ( |  | ) |

override protected virtual

This method should get called before starting the actual computation.

Reimplemented from pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >.

Definition at line 47 of file flare.hpp.

## setMarginThresh()

template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>

void pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >::setMarginThresh | ( | float | margin_thresh | ) |

inline

Set the percentage of the search tangent radius after which a point is considered part of the support.

Parameters

  [in] | margin_thresh | the percentage of the search tangent radius after which a point is considered part of the support.

Definition at line 127 of file flare.h.

## setMinNeighboursForNormalAxis()

template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>

void pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >::setMinNeighboursForNormalAxis | ( | int | min_neighbors_for_normal_axis | ) |

inline

Set min number of neighbours required for the computation of Z axis.

Parameters

  [in] | min_neighbors_for_normal_axis | min number of neighbours required for the computation of Z axis.

Definition at line 148 of file flare.h.

## setMinNeighboursForTangentAxis()

template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>

void pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >::setMinNeighboursForTangentAxis | ( | int | min_neighbors_for_tangent_axis | ) |

inline

Set min number of neighbours required for the computation of X axis.

Parameters

  [in] | min_neighbors_for_tangent_axis | min number of neighbours required for the computation of X axis.

Definition at line 169 of file flare.h.

## setSearchMethodForSampledSurface()

template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>

void pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >::setSearchMethodForSampledSurface | ( | const KdTreePtr & | tree | ) |

inline

Provide a pointer to the search object linked to sampled_surface.

Parameters

  [in] | tree | a pointer to the spatial search object linked to sampled_surface.

Definition at line 210 of file flare.h.

## setSearchSampledSurface()

template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>

void pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >::setSearchSampledSurface | ( | const PointCloudInConstPtr & | cloud | ) |

inline

Provide a pointer to the dataset used for the estimation of X axis.

As the estimation of x axis is negligibly affected by surface downsampling, this method lets to consider a downsampled version of surface_ in the estimation of x axis.
This is optional, if this is not set, it will only use the data in the surface_ cloud to estimate the x axis.

Parameters

  [in] | cloud | a pointer to a PointCloud

Definition at line 193 of file flare.h.

## setTangentRadius()

template<typename PointInT , typename PointNT , typename PointOutT = ReferenceFrame, typename SignedDistanceT = float>

void pcl::FLARELocalReferenceFrameEstimation< PointInT, PointNT, PointOutT, SignedDistanceT >::setTangentRadius | ( | float | radius | ) |

inline

Set the maximum distance of the points used to estimate the x_axis of the FLARE Reference Frame for a given point.

Parameters

  [in] | radius | The search radius for x axis.

Definition at line 107 of file flare.h.

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

- pcl/features/flare.h
- pcl/features/impl/flare.hpp