pcl::SurfaceNormalModality< PointInT > Class Template Reference

Modality based on surface normals. More...

`#include <pcl/recognition/surface_normal_modality.h>`

Inheritance diagram for pcl::SurfaceNormalModality< PointInT >:

## Classes

struct | Candidate
| Candidate for a feature (used in feature extraction methods). More...

## Public Types

using | PointCloudIn = pcl::PointCloud< PointInT >
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

## Public Member Functions

| SurfaceNormalModality ()
| Constructor. More...
| ~SurfaceNormalModality ()
| Destructor. More...
void | setSpreadingSize (const std::size_t spreading_size)
| Sets the spreading size. More...
void | setVariableFeatureNr (const bool enabled)
| Enables/disables the use of extracting a variable number of features. More...
pcl::PointCloud< pcl::Normal > & | getSurfaceNormals ()
| Returns the surface normals. More...
const pcl::PointCloud< pcl::Normal > & | getSurfaceNormals () const
| Returns the surface normals. More...
QuantizedMap & | getQuantizedMap () override
| Returns a reference to the internal quantized map. More...
QuantizedMap & | getSpreadedQuantizedMap () override
| Returns a reference to the internal spread quantized map. More...
LINEMOD_OrientationMap & | getOrientationMap ()
| Returns a reference to the orientation map. More...
void | extractFeatures (const MaskMap &mask, std::size_t nr_features, std::size_t modality_index, std::vector< QuantizedMultiModFeature > &features) const override
| Extracts features from this modality within the specified mask. More...
void | extractAllFeatures (const MaskMap &mask, std::size_t nr_features, std::size_t modality_index, std::vector< QuantizedMultiModFeature > &features) const override
| Extracts all possible features from the modality within the specified mask. More...
void | setInputCloud (const typename PointCloudIn::ConstPtr &cloud) override
| Provide a pointer to the input dataset (overwrites the PCLBase::setInputCloud method) More...
virtual void | processInputData ()
| Processes the input data (smoothing, computing gradients, quantizing, filtering, spreading). More...
virtual void | processInputDataFromFiltered ()
| Processes the input data assuming that everything up to filtering is already done/available (so only spreading is performed). More...
Public Member Functions inherited from pcl::QuantizableModality
| QuantizableModality ()
| Constructor. More...
virtual | ~QuantizableModality ()
| Destructor. More...
Public Member Functions inherited from pcl::PCLBase< PointInT >
| PCLBase ()
| Empty constructor. More...
| PCLBase (const PCLBase &base)
| Copy constructor. More...
virtual | ~PCLBase ()=default
| Destructor. More...
virtual void | setInputCloud (const PointCloudConstPtr &cloud)
| Provide a pointer to the input dataset. More...
PointCloudConstPtr const | getInputCloud () const
| Get a pointer to the input point cloud dataset. More...
virtual void | setIndices (const IndicesPtr &indices)
| Provide a pointer to the vector of indices that represents the input data. More...
virtual void | setIndices (const IndicesConstPtr &indices)
| Provide a pointer to the vector of indices that represents the input data. More...
virtual void | setIndices (const PointIndicesConstPtr &indices)
| Provide a pointer to the vector of indices that represents the input data. More...
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. More...
IndicesPtr | getIndices ()
| Get a pointer to the vector of indices used. More...
IndicesConstPtr const | getIndices () const
| Get a pointer to the vector of indices used. More...
const PointInT & | operator[] (std::size_t pos) const
| Override PointCloud operator[] to shorten code. More...

## Protected Member Functions

void | computeSurfaceNormals ()
| Computes the surface normals from the input cloud. More...
void | computeAndQuantizeSurfaceNormals ()
| Computes and quantizes the surface normals. More...
void | computeAndQuantizeSurfaceNormals2 ()
| Computes and quantizes the surface normals. More...
void | quantizeSurfaceNormals ()
| Quantizes the surface normals. More...
void | filterQuantizedSurfaceNormals ()
| Filters the quantized surface normals. More...
void | computeDistanceMap (const MaskMap &input, DistanceMap &output) const
| Computes a distance map from the supplied input mask. More...
Protected Member Functions inherited from pcl::PCLBase< PointInT >
bool | initCompute ()
| This method should get called before starting the actual computation. More...
bool | deinitCompute ()
| This method should get called after finishing the actual computation. More...

## Additional Inherited Members

Protected Attributes inherited from pcl::PCLBase< PointInT >
PointCloudConstPtr | input_
| The input point cloud dataset. More...
IndicesPtr | indices_
| A pointer to the vector of point indices to use. More...
bool | use_indices_
| Set to true if point indices are used. More...
bool | fake_indices_
| If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. More...

## Detailed Description

### template<typename PointInT>
class pcl::SurfaceNormalModality< PointInT >

Modality based on surface normals.

Author
  Stefan Holzer

Definition at line 299 of file surface_normal_modality.h.

## Member Typedef Documentation

## PointCloudIn

template<typename PointInT >

using pcl::SurfaceNormalModality< PointInT >::PointCloudIn = pcl::PointCloud<PointInT>

Definition at line 334 of file surface_normal_modality.h.

## Constructor & Destructor Documentation

## SurfaceNormalModality()

template<typename PointInT >

pcl::SurfaceNormalModality< PointInT >::SurfaceNormalModality

Constructor.

Definition at line 496 of file surface_normal_modality.h.

## ~SurfaceNormalModality()

template<typename PointInT >

pcl::SurfaceNormalModality< PointInT >::~SurfaceNormalModality

Destructor.

Definition at line 507 of file surface_normal_modality.h.

## Member Function Documentation

## computeAndQuantizeSurfaceNormals()

template<typename PointInT >

void pcl::SurfaceNormalModality< PointInT >::computeAndQuantizeSurfaceNormals

protected

Computes and quantizes the surface normals.

Definition at line 557 of file surface_normal_modality.h.

## computeAndQuantizeSurfaceNormals2()

template<typename PointInT >

void pcl::SurfaceNormalModality< PointInT >::computeAndQuantizeSurfaceNormals2

protected

Computes and quantizes the surface normals.

Compute quantized normal image from depth image.

Implements section 2.6 "Extension to Dense Depth Sensors."

Todo:
  Should also need camera model, or at least focal lengths? Replace distance_threshold with mask?

Todo:
  Magic number 1150 is focal length? This is something like f in SXGA mode, but in VGA is more like 530.

Definition at line 723 of file surface_normal_modality.h.

## computeDistanceMap()

template<typename PointInT >

void pcl::SurfaceNormalModality< PointInT >::computeDistanceMap | ( | const MaskMap & | input,
|  | DistanceMap & | output
| ) |  | const

protected

Computes a distance map from the supplied input mask.

Parameters

  [in] | input | the mask for which a distance map will be computed.
  [out] | output | the destination for the distance map.

Definition at line 1578 of file surface_normal_modality.h.

References pcl::DistanceMap::getData(), pcl::MaskMap::getData(), pcl::MaskMap::getHeight(), pcl::MaskMap::getWidth(), and pcl::DistanceMap::resize().

## computeSurfaceNormals()

template<typename PointInT >

void pcl::SurfaceNormalModality< PointInT >::computeSurfaceNormals

protected

Computes the surface normals from the input cloud.

Definition at line 544 of file surface_normal_modality.h.

References pcl::Feature< PointInT, PointOutT >::compute(), pcl::LinearLeastSquaresNormalEstimation< PointInT, PointOutT >::setDepthDependentSmoothing(), pcl::LinearLeastSquaresNormalEstimation< PointInT, PointOutT >::setInputCloud(), pcl::LinearLeastSquaresNormalEstimation< PointInT, PointOutT >::setMaxDepthChangeFactor(), and pcl::LinearLeastSquaresNormalEstimation< PointInT, PointOutT >::setNormalSmoothingSize().

## extractAllFeatures()

template<typename PointInT >

void pcl::SurfaceNormalModality< PointInT >::extractAllFeatures | ( | const MaskMap & | mask,
|  | std::size_t | nr_features,
|  | std::size_t | modality_index,
|  | std::vector< QuantizedMultiModFeature > & | features
| ) |  | const

override virtual

Extracts all possible features from the modality within the specified mask.

Parameters

  [in] | mask | defines the areas where features are searched in.
  [in] | nr_features | IGNORED (TODO: remove this parameter).
  [in] | modality_index | the index which is stored in the extracted features.
  [out] | features | the destination for the extracted features.

Implements pcl::QuantizableModality.

Definition at line 1236 of file surface_normal_modality.h.

References pcl::SurfaceNormalModality< PointInT >::Candidate::bin_index, pcl::geometry::distance(), pcl::SurfaceNormalModality< PointInT >::Candidate::distance, pcl::MaskMap::getHeight(), pcl::MaskMap::getWidth(), pcl::QuantizedMultiModFeature::modality_index, pcl::QuantizedMultiModFeature::quantized_value, pcl::MaskMap::resize(), pcl::QuantizedMultiModFeature::x, pcl::SurfaceNormalModality< PointInT >::Candidate::x, pcl::QuantizedMultiModFeature::y, and pcl::SurfaceNormalModality< PointInT >::Candidate::y.

## extractFeatures()

template<typename PointInT >

void pcl::SurfaceNormalModality< PointInT >::extractFeatures | ( | const MaskMap & | mask,
|  | std::size_t | nr_features,
|  | std::size_t | modality_index,
|  | std::vector< QuantizedMultiModFeature > & | features
| ) |  | const

override virtual

Extracts features from this modality within the specified mask.

Parameters

  [in] | mask | defines the areas where features are searched in.
  [in] | nr_features | defines the number of features to be extracted (might be less if not sufficient information is present in the modality).
  [in] | modality_index | the index which is stored in the extracted features.
  [out] | features | the destination for the extracted features.

Implements pcl::QuantizableModality.

Definition at line 964 of file surface_normal_modality.h.

References pcl::SurfaceNormalModality< PointInT >::Candidate::bin_index, pcl::geometry::distance(), pcl::SurfaceNormalModality< PointInT >::Candidate::distance, pcl::MaskMap::getHeight(), pcl::MaskMap::getWidth(), pcl::QuantizedMultiModFeature::modality_index, pcl::QuantizedMultiModFeature::quantized_value, pcl::MaskMap::resize(), pcl::QuantizedMultiModFeature::x, pcl::SurfaceNormalModality< PointInT >::Candidate::x, pcl::QuantizedMultiModFeature::y, and pcl::SurfaceNormalModality< PointInT >::Candidate::y.

## filterQuantizedSurfaceNormals()

template<typename PointInT >

void pcl::SurfaceNormalModality< PointInT >::filterQuantizedSurfaceNormals

protected

Filters the quantized surface normals.

Definition at line 1406 of file surface_normal_modality.h.

## getOrientationMap()

template<typename PointInT >

LINEMOD_OrientationMap& pcl::SurfaceNormalModality< PointInT >::getOrientationMap | ( |  | ) |

inline

Returns a reference to the orientation map.

Definition at line 389 of file surface_normal_modality.h.

## getQuantizedMap()

template<typename PointInT >

QuantizedMap& pcl::SurfaceNormalModality< PointInT >::getQuantizedMap | ( |  | ) |

inline override virtual

Returns a reference to the internal quantized map.

Implements pcl::QuantizableModality.

Definition at line 375 of file surface_normal_modality.h.

## getSpreadedQuantizedMap()

template<typename PointInT >

QuantizedMap& pcl::SurfaceNormalModality< PointInT >::getSpreadedQuantizedMap | ( |  | ) |

inline override virtual

Returns a reference to the internal spread quantized map.

Implements pcl::QuantizableModality.

Definition at line 382 of file surface_normal_modality.h.

## getSurfaceNormals() [1/2]

template<typename PointInT >

pcl::PointCloud<pcl::Normal>& pcl::SurfaceNormalModality< PointInT >::getSurfaceNormals | ( |  | ) |

inline

Returns the surface normals.

Definition at line 361 of file surface_normal_modality.h.

## getSurfaceNormals() [2/2]

template<typename PointInT >

const pcl::PointCloud<pcl::Normal>& pcl::SurfaceNormalModality< PointInT >::getSurfaceNormals | ( |  | ) | const

inline

Returns the surface normals.

Definition at line 368 of file surface_normal_modality.h.

## processInputData()

template<typename PointInT >

void pcl::SurfaceNormalModality< PointInT >::processInputData

virtual

Processes the input data (smoothing, computing gradients, quantizing, filtering, spreading).

Definition at line 513 of file surface_normal_modality.h.

References pcl::QuantizedMap::spreadQuantizedMap().

## processInputDataFromFiltered()

template<typename PointInT >

void pcl::SurfaceNormalModality< PointInT >::processInputDataFromFiltered

virtual

Processes the input data assuming that everything up to filtering is already done/available (so only spreading is performed).

Definition at line 534 of file surface_normal_modality.h.

References pcl::QuantizedMap::spreadQuantizedMap().

## quantizeSurfaceNormals()

template<typename PointInT >

void pcl::SurfaceNormalModality< PointInT >::quantizeSurfaceNormals

protected

Quantizes the surface normals.

Definition at line 1365 of file surface_normal_modality.h.

## setInputCloud()

template<typename PointInT >

void pcl::SurfaceNormalModality< PointInT >::setInputCloud | ( | const typename PointCloudIn::ConstPtr & | cloud | ) |

inline override

Provide a pointer to the input dataset (overwrites the PCLBase::setInputCloud method)

Parameters

  [in] | cloud | the const boost shared pointer to a PointCloud message

Definition at line 419 of file surface_normal_modality.h.

References pcl::PCLBase< PointInT >::input_.

## setSpreadingSize()

template<typename PointInT >

void pcl::SurfaceNormalModality< PointInT >::setSpreadingSize | ( | const std::size_t | spreading_size | ) |

inline

Sets the spreading size.

Parameters

  [in] | spreading_size | the spreading size.

Definition at line 345 of file surface_normal_modality.h.

## setVariableFeatureNr()

template<typename PointInT >

void pcl::SurfaceNormalModality< PointInT >::setVariableFeatureNr | ( | const bool | enabled | ) |

inline

Enables/disables the use of extracting a variable number of features.

Parameters

  [in] | enabled | specifies whether extraction of a variable number of features will be enabled/disabled.

Definition at line 354 of file surface_normal_modality.h.

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

- pcl/recognition/surface_normal_modality.h