pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT > Class Template Referenceabstract
Module features

SHOTEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points and normals. More...

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

Inheritance diagram for pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >:

## Public Types

typedef boost::shared_ptr< SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT > > | Ptr
typedef boost::shared_ptr< const SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT > > | ConstPtr
typedef Feature< PointInT, PointOutT >::PointCloudIn | PointCloudIn
Public Types inherited from pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >
typedef pcl::PointCloud< PointNT > | PointCloudN
typedef PointCloudN::Ptr | PointCloudNPtr
typedef PointCloudN::ConstPtr | PointCloudNConstPtr
typedef boost::shared_ptr< FeatureFromNormals< PointInT, PointNT, PointOutT > > | Ptr
typedef boost::shared_ptr< const FeatureFromNormals< PointInT, PointNT, PointOutT > > | ConstPtr
Public Types inherited from pcl::Feature< PointInT, PointOutT >
typedef PCLBase< PointInT > | BaseClass
typedef boost::shared_ptr< Feature< PointInT, PointOutT > > | Ptr
typedef boost::shared_ptr< const Feature< PointInT, PointOutT > > | ConstPtr
typedef pcl::search::Search< PointInT > | KdTree
typedef pcl::search::Search< PointInT >::Ptr | KdTreePtr
typedef pcl::PointCloud< PointInT > | PointCloudIn
typedef PointCloudIn::Ptr | PointCloudInPtr
typedef PointCloudIn::ConstPtr | PointCloudInConstPtr
typedef pcl::PointCloud< PointOutT > | PointCloudOut
typedef boost::function< int(size_t, double, std::vector< int > &, std::vector< float > &)> | SearchMethod
typedef boost::function< int(const PointCloudIn &cloud, size_t index, double, std::vector< int > &, std::vector< float > &)> | SearchMethodSurface
Public Types inherited from pcl::PCLBase< PointInT >
typedef pcl::PointCloud< PointInT > | PointCloud
typedef PointCloud::Ptr | PointCloudPtr
typedef PointCloud::ConstPtr | PointCloudConstPtr
typedef boost::shared_ptr< PointIndices > | PointIndicesPtr
typedef boost::shared_ptr< PointIndices const > | PointIndicesConstPtr
Public Types inherited from pcl::FeatureWithLocalReferenceFrames< PointInT, PointRFT >
typedef pcl::PointCloud< PointRFT > | PointCloudLRF
typedef PointCloudLRF::Ptr | PointCloudLRFPtr
typedef PointCloudLRF::ConstPtr | PointCloudLRFConstPtr

## Public Member Functions

virtual | ~SHOTEstimationBase ()
| Empty destructor. More...
virtual void | computePointSHOT (const int index, const std::vector< int > &indices, const std::vector< float > &sqr_dists, Eigen::VectorXf &shot)=0
| Estimate the SHOT descriptor for a given point based on its spatial neighborhood of 3D points with normals. More...
virtual void | setLRFRadius (float radius)
| Set the radius used for local reference frame estimation if the frames are not set by the user. More...
virtual float | getLRFRadius () const
| Get the radius used for local reference frame estimation. More...
Public Member Functions inherited from pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >
| FeatureFromNormals ()
| Empty constructor. More...
virtual | ~FeatureFromNormals ()
| Empty destructor. More...
void | setInputNormals (const PointCloudNConstPtr &normals)
| Provide a pointer to the input dataset that contains the point normals of the XYZ dataset. More...
PointCloudNConstPtr | getInputNormals () const
| Get a pointer to the normals of the input XYZ point cloud dataset. More...
Public Member Functions inherited from pcl::Feature< PointInT, PointOutT >
| Feature ()
| Empty constructor. More...
virtual | ~Feature ()
| Empty destructor. More...
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. More...
PointCloudInConstPtr | getSearchSurface () const
| Get a pointer to the surface point cloud dataset. More...
void | setSearchMethod (const KdTreePtr &tree)
| Provide a pointer to the search object. More...
KdTreePtr | getSearchMethod () const
| Get a pointer to the search method used. More...
double | getSearchParameter () const
| Get the internal search parameter. More...
void | setKSearch (int k)
| Set the number of k nearest neighbors to use for the feature estimation. More...
int | getKSearch () const
| get the number of k nearest neighbors used for the feature estimation. More...
void | setRadiusSearch (double radius)
| Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. More...
double | getRadiusSearch () const
| Get the sphere radius used for determining the neighbors. More...
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 () More...
Public Member Functions inherited from pcl::PCLBase< PointInT >
| PCLBase ()
| Empty constructor. More...
| PCLBase (const PCLBase &base)
| Copy constructor. More...
virtual | ~PCLBase ()
| 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 (size_t row_start, size_t col_start, size_t nb_rows, size_t nb_cols)
| Set the indices for the points laying within an interest region of the point cloud. More...
IndicesPtr const | 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[] (size_t pos) const
| Override PointCloud operator[] to shorten code. More...
Public Member Functions inherited from pcl::FeatureWithLocalReferenceFrames< PointInT, PointRFT >
| FeatureWithLocalReferenceFrames ()
| Empty constructor. More...
virtual | ~FeatureWithLocalReferenceFrames ()
| Empty destructor. More...
void | setInputReferenceFrames (const PointCloudLRFConstPtr &frames)
| Provide a pointer to the input dataset that contains the local reference frames of the XYZ dataset. More...
PointCloudLRFConstPtr | getInputReferenceFrames () const
| Get a pointer to the local reference frames. More...

## Protected Member Functions

| SHOTEstimationBase (int nr_shape_bins=10)
| Empty constructor. More...
virtual bool | initCompute ()
| This method should get called before starting the actual computation. More...
void | interpolateSingleChannel (const std::vector< int > &indices, const std::vector< float > &sqr_dists, const int index, std::vector< double > &binDistance, const int nr_bins, Eigen::VectorXf &shot)
| Quadrilinear interpolation used when color and shape descriptions are NOT activated simultaneously. More...
void | normalizeHistogram (Eigen::VectorXf &shot, int desc_length)
| Normalize the SHOT histogram. More...
void | createBinDistanceShape (int index, const std::vector< int > &indices, std::vector< double > &bin_distance_shape)
| Create a binned distance shape histogram. More...
Protected Member Functions inherited from pcl::Feature< PointInT, PointOutT >
const std::string & | getClassName () const
| Get a string representation of the name of this class. More...
virtual bool | deinitCompute ()
| This method should get called after ending the actual computation. More...
int | searchForNeighbors (size_t index, double parameter, std::vector< int > &indices, std::vector< float > &distances) const
| Search for k-nearest neighbors using the spatial locator from setSearchmethod, and the given surface from setSearchSurface. More...
int | searchForNeighbors (const PointCloudIn &cloud, size_t index, double parameter, std::vector< int > &indices, std::vector< float > &distances) const
| Search for k-nearest neighbors using the spatial locator from setSearchmethod, and the given surface from setSearchSurface. 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...
Protected Member Functions inherited from pcl::FeatureWithLocalReferenceFrames< PointInT, PointRFT >
virtual bool | initLocalReferenceFrames (const size_t &indices_size, const LRFEstimationPtr &lrf_estimation=LRFEstimationPtr())

## Protected Attributes

int | nr_shape_bins_
| The number of bins in each shape histogram. More...
Eigen::VectorXf | shot_
| Placeholder for a point's SHOT. More...
float | lrf_radius_
| The radius used for the LRF computation. More...
double | sqradius_
| The squared search radius. More...
double | radius3_4_
| 3/4 of the search radius. More...
double | radius1_4_
| 1/4 of the search radius. More...
double | radius1_2_
| 1/2 of the search radius. More...
const int | nr_grid_sector_
| Number of azimuthal sectors. More...
const int | maxAngularSectors_
| ... More...
int | descLength_
| One SHOT length. More...
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. More...
Protected Attributes inherited from pcl::Feature< PointInT, PointOutT >
std::string | feature_name_
| The feature name. More...
SearchMethodSurface | search_method_surface_
| The search method template for points. More...
PointCloudInConstPtr | surface_
| An input point cloud describing the surface that is to be used for nearest neighbors estimation. More...
KdTreePtr | tree_
| A pointer to the spatial search object. More...
double | search_parameter_
| The actual search parameter (from either search_radius_ or k_). More...
double | search_radius_
| The nearest neighbors search radius for each point. More...
int | k_
| The number of K nearest neighbors to use for each point. More...
bool | fake_surface_
| If no surface is given, we use the input PointCloud as the surface. More...
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...
Protected Attributes inherited from pcl::FeatureWithLocalReferenceFrames< PointInT, PointRFT >
PointCloudLRFConstPtr | frames_
| A boost shared pointer to the local reference frames. More...
bool | frames_never_defined_
| The user has never set the frames. More...

## Additional Inherited Members

Protected Types inherited from pcl::FeatureWithLocalReferenceFrames< PointInT, PointRFT >
typedef Feature< PointInT, PointRFT >::Ptr | LRFEstimationPtr
| Check if frames_ has been correctly initialized and compute it if needed. More...

## Detailed Description

### template<typename PointInT, typename PointNT, typename PointOutT, typename PointRFT = pcl::ReferenceFrame>
class pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >

SHOTEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points and normals.

The suggested PointOutT is pcl::SHOT352.

Note
  If you use this code in any academic work, please cite:

- F. Tombari, S. Salti, L. Di Stefano Unique Signatures of Histograms for Local Surface Description. In Proceedings of the 11th European Conference on Computer Vision (ECCV), Heraklion, Greece, September 5-11 2010.
- F. Tombari, S. Salti, L. Di Stefano A Combined Texture-Shape Descriptor For Enhanced 3D Feature Matching. In Proceedings of the 18th International Conference on Image Processing (ICIP), Brussels, Belgium, September 11-14 2011.

Author
  Samuele Salti, Federico Tombari

Definition at line 68 of file shot.h.

## Member Typedef Documentation

template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>

typedef boost::shared_ptr<const SHOTEstimationBase<PointInT, PointNT, PointOutT, PointRFT> > pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::ConstPtr

Definition at line 73 of file shot.h.

template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>

typedef Feature<PointInT, PointOutT>::PointCloudIn pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::PointCloudIn

Definition at line 86 of file shot.h.

template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>

typedef boost::shared_ptr<SHOTEstimationBase<PointInT, PointNT, PointOutT, PointRFT> > pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::Ptr

Definition at line 72 of file shot.h.

## Constructor & Destructor Documentation

template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>

pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::SHOTEstimationBase | ( | int | nr_shape_bins = `10` | ) |

inline protected

Empty constructor.

Parameters

  [in] | nr_shape_bins | the number of bins in the shape histogram

Definition at line 92 of file shot.h.

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

template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>

virtual pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::~SHOTEstimationBase | ( |  | ) |

inline virtual

Empty destructor.

Definition at line 107 of file shot.h.

References pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::computePointSHOT().

## Member Function Documentation

template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>

virtual void pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::computePointSHOT | ( | const int | index,
|  | const std::vector< int > & | indices,
|  | const std::vector< float > & | sqr_dists,
|  | Eigen::VectorXf & | shot
| ) |  |

pure virtual

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

Parameters

  [in] | index | the index of the point in indices_
  [in] | indices | the k-neighborhood point indices in surface_
  [in] | sqr_dists | the k-neighborhood point distances in surface_
  [out] | shot | the resultant SHOT descriptor representing the feature at the query point

Implemented in pcl::SHOTColorEstimation< PointInT, PointNT, PointOutT, PointRFT >, and pcl::SHOTEstimation< PointInT, PointNT, PointOutT, PointRFT >.

Referenced by pcl::SHOTColorEstimation< PointInT, PointNT, PointOutT, PointRFT >::~SHOTColorEstimation(), pcl::SHOTEstimation< PointInT, PointNT, PointOutT, PointRFT >::~SHOTEstimation(), and pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::~SHOTEstimationBase().

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

void pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::createBinDistanceShape | ( | int | index,
|  | const std::vector< int > & | indices,
|  | std::vector< double > & | bin_distance_shape
| ) |  |

protected

Create a binned distance shape histogram.

Parameters

  [in] | index | the index of the point in indices_
  [in] | indices | the k-neighborhood point indices in surface_
  [out] | bin_distance_shape | the resultant histogram

Definition at line 194 of file shot.hpp.

Referenced by pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::getLRFRadius().

template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>

virtual float pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::getLRFRadius | ( |  | ) | const

inline virtual

Get the radius used for local reference frame estimation.

Definition at line 127 of file shot.h.

References pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::createBinDistanceShape(), pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::initCompute(), pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::interpolateSingleChannel(), pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::lrf_radius_, and pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::normalizeHistogram().

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

bool pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::initCompute | ( |  | ) |

protected virtual

This method should get called before starting the actual computation.

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

Reimplemented in pcl::SHOTColorEstimationOMP< PointInT, PointNT, PointOutT, PointRFT >, and pcl::SHOTEstimationOMP< PointInT, PointNT, PointOutT, PointRFT >.

Definition at line 158 of file shot.hpp.

References pcl::PCLBase< PointInT >::setIndices(), pcl::PCLBase< PointInT >::setInputCloud(), pcl::Feature< PointInT, PointOutT >::setRadiusSearch(), and pcl::Feature< PointInT, PointOutT >::setSearchSurface().

Referenced by pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::getLRFRadius().

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

void pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::interpolateSingleChannel | ( | const std::vector< int > & | indices,
|  | const std::vector< float > & | sqr_dists,
|  | const int | index,
|  | std::vector< double > & | binDistance,
|  | const int | nr_bins,
|  | Eigen::VectorXf & | shot
| ) |  |

protected

Quadrilinear interpolation used when color and shape descriptions are NOT activated simultaneously.

Parameters

  [in] | indices | the neighborhood point indices
  [in] | sqr_dists | the neighborhood point distances
  [in] | index | the index of the point in indices_
  [out] | binDistance | the resultant distance shape histogram
  [in] | nr_bins | the number of bins in the shape histogram
  [out] | shot | the resultant SHOT histogram

Definition at line 255 of file shot.hpp.

Referenced by pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::getLRFRadius().

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

void pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::normalizeHistogram | ( | Eigen::VectorXf & | shot,
|  | int | desc_length
| ) |  |

protected

Normalize the SHOT histogram.

Parameters

  [in,out] | shot | the SHOT histogram
  [in] | desc_length | the length of the histogram

Definition at line 238 of file shot.hpp.

Referenced by pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::getLRFRadius().

template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>

virtual void pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::setLRFRadius | ( | float | radius | ) |

inline virtual

Set the radius used for local reference frame estimation if the frames are not set by the user.

Definition at line 123 of file shot.h.

References pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::lrf_radius_.

## Member Data Documentation

template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>

int pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::descLength_

protected

One SHOT length.

Definition at line 197 of file shot.h.

template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>

float pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::lrf_radius_

protected

The radius used for the LRF computation.

Definition at line 176 of file shot.h.

Referenced by pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::getLRFRadius(), and pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::setLRFRadius().

template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>

const int pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::maxAngularSectors_

protected

...

Definition at line 194 of file shot.h.

template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>

const int pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::nr_grid_sector_

protected

Number of azimuthal sectors.

Definition at line 191 of file shot.h.

template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>

int pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::nr_shape_bins_

protected

The number of bins in each shape histogram.

Definition at line 170 of file shot.h.

template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>

double pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::radius1_2_

protected

1/2 of the search radius.

Definition at line 188 of file shot.h.

template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>

double pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::radius1_4_

protected

1/4 of the search radius.

Definition at line 185 of file shot.h.

template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>

double pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::radius3_4_

protected

3/4 of the search radius.

Definition at line 182 of file shot.h.

template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>

Eigen::VectorXf pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::shot_

protected

Placeholder for a point's SHOT.

Definition at line 173 of file shot.h.

template<typename PointInT , typename PointNT , typename PointOutT , typename PointRFT = pcl::ReferenceFrame>

double pcl::SHOTEstimationBase< PointInT, PointNT, PointOutT, PointRFT >::sqradius_

protected

The squared search radius.

Definition at line 179 of file shot.h.

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

- /build/pcl-0nnAvv/pcl-1.7.2/features/include/pcl/features/shot.h
- /build/pcl-0nnAvv/pcl-1.7.2/features/include/pcl/features/impl/shot.hpp