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

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

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

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

## Public Types

using | Ptr = shared_ptr<SHOTColorEstimation<PointInT, PointNT, PointOutT, PointRFT> >
using | ConstPtr = shared_ptr<const SHOTColorEstimation<PointInT, PointNT, PointOutT, PointRFT> >
using | PointCloudIn = typename Feature<PointInT, PointOutT>::PointCloudIn
Public Types inherited from pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >
using | Ptr
using | ConstPtr
using | PointCloudIn
Public Types inherited from pcl::FeatureFromNormals< PointInT, PointNT, pcl::SHOT1344 >
using | PointCloudN
using | PointCloudNPtr
using | PointCloudNConstPtr
using | Ptr
using | ConstPtr
Public Types inherited from pcl::Feature< PointInT, pcl::SHOT1344 >
using | BaseClass
using | Ptr
using | ConstPtr
using | KdTree
using | KdTreePtr
using | PointCloudIn
using | PointCloudInPtr
using | PointCloudInConstPtr
using | PointCloudOut
using | SearchMethod
using | SearchMethodSurface
Public Types inherited from pcl::PCLBase< PointInT >
using | PointCloud
using | PointCloudPtr
using | PointCloudConstPtr
using | PointIndicesPtr
using | PointIndicesConstPtr
Public Types inherited from pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >
using | PointCloudLRF
using | PointCloudLRFPtr
using | PointCloudLRFConstPtr

## Public Member Functions

| SHOTColorEstimation (bool describe_shape=true, bool describe_color=true)
| Empty constructor.
| ~SHOTColorEstimation () override=default
| Empty destructor.
void | computePointSHOT (const int index, const pcl::Indices &indices, const std::vector< float > &sqr_dists, Eigen::VectorXf &shot) override
| Estimate the SHOT descriptor for a given point based on its spatial neighborhood of 3D points with normals.
Public Member Functions inherited from pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >
| ~SHOTEstimationBase () override=default
| Empty destructor.
virtual void | setLRFRadius (float radius)
| Set the radius used for local reference frame estimation if the frames are not set by the user.
virtual float | getLRFRadius () const
| Get the radius used for local reference frame estimation.
Public Member Functions inherited from pcl::FeatureFromNormals< PointInT, PointNT, pcl::SHOT1344 >
| 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, pcl::SHOT1344 >
| 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.
Public Member Functions inherited from pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >
| FeatureWithLocalReferenceFrames ()
| Empty constructor.
virtual | ~FeatureWithLocalReferenceFrames ()=default
| Default virtual destructor.
void | setInputReferenceFrames (const PointCloudLRFConstPtr &frames)
| Provide a pointer to the input dataset that contains the local reference frames of the XYZ dataset.
PointCloudLRFConstPtr | getInputReferenceFrames () const
| Get a pointer to the local reference frames.

## Static Public Member Functions

static void | RGB2CIELAB (unsigned char R, unsigned char G, unsigned char B, float &L, float &A, float &B2)
| Converts RGB triplets to CIELab space.

## Static Public Attributes

static std::array< float, 256 > | sRGB_LUT = pcl::RGB2sRGB_LUT<float, 8>()
static std::array< float, 4000 > | sXYZ_LUT = pcl::XYZ2LAB_LUT<float, 4000>()

## Protected Member Functions

void | computeFeature (pcl::PointCloud< PointOutT > &output) override
| Estimate the Signatures of Histograms of OrienTations (SHOT) descriptors at a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod ().
void | interpolateDoubleChannel (const pcl::Indices &indices, const std::vector< float > &sqr_dists, const int index, std::vector< double > &binDistanceShape, std::vector< double > &binDistanceColor, const int nr_bins_shape, const int nr_bins_color, Eigen::VectorXf &shot)
| Quadrilinear interpolation; used when color and shape descriptions are both activated.
Protected Member Functions inherited from pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >
| SHOTEstimationBase (int nr_shape_bins=10)
| Empty constructor.
bool | initCompute () override
| This method should get called before starting the actual computation.
void | interpolateSingleChannel (const pcl::Indices &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.
void | normalizeHistogram (Eigen::VectorXf &shot, int desc_length)
| Normalize the SHOT histogram.
void | createBinDistanceShape (int index, const pcl::Indices &indices, std::vector< double > &bin_distance_shape)
| Create a binned distance shape histogram.
Protected Member Functions inherited from pcl::Feature< PointInT, pcl::SHOT1344 >
const std::string & | getClassName () const
| Get a string representation of the name of this class.
virtual bool | deinitCompute ()
| This method should get called after ending the actual computation.
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.
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.
Protected Member Functions inherited from pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >
virtual bool | initLocalReferenceFrames (const std::size_t &indices_size, const LRFEstimationPtr &lrf_estimation=LRFEstimationPtr())

## Protected Attributes

bool | b_describe_shape_
| Compute shape descriptor.
bool | b_describe_color_
| Compute color descriptor.
int | nr_color_bins_ {30}
| The number of bins in each color histogram.
Protected Attributes inherited from pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >
int | nr_shape_bins_
| The number of bins in each shape histogram.
float | lrf_radius_
| The radius used for the LRF computation.
double | sqradius_
| The squared search radius.
double | radius3_4_
| 3/4 of the search radius.
double | radius1_4_
| 1/4 of the search radius.
double | radius1_2_
| 1/2 of the search radius.
const int | nr_grid_sector_
| Number of azimuthal sectors.
const int | maxAngularSectors_
| ...
int | descLength_
| One SHOT length.
Protected Attributes inherited from pcl::FeatureFromNormals< PointInT, PointNT, pcl::SHOT1344 >
PointCloudNConstPtr | normals_
| A pointer to the input dataset that contains the point normals of the XYZ dataset.
Protected Attributes inherited from pcl::Feature< PointInT, pcl::SHOT1344 >
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.
Protected Attributes inherited from pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >
PointCloudLRFConstPtr | frames_
| A boost shared pointer to the local reference frames.
bool | frames_never_defined_
| The user has never set the frames.

## Additional Inherited Members

Protected Types inherited from pcl::FeatureWithLocalReferenceFrames< PointInT, pcl::ReferenceFrame >
using | LRFEstimationPtr
| Check if frames_ has been correctly initialized and compute it if needed.

## Detailed Description

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

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

The suggested PointOutT is pcl::SHOT1344

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 289 of file shot.h.

## Member Typedef Documentation

## ConstPtr

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

using pcl::SHOTColorEstimation< PointInT, PointNT, PointOutT, PointRFT >::ConstPtr = shared_ptr<const SHOTColorEstimation<PointInT, PointNT, PointOutT, PointRFT> >

Definition at line 293 of file shot.h.

## PointCloudIn

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

using pcl::SHOTColorEstimation< PointInT, PointNT, PointOutT, PointRFT >::PointCloudIn = typename Feature<PointInT, PointOutT>::PointCloudIn

Definition at line 314 of file shot.h.

## Ptr

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

using pcl::SHOTColorEstimation< PointInT, PointNT, PointOutT, PointRFT >::Ptr = shared_ptr<SHOTColorEstimation<PointInT, PointNT, PointOutT, PointRFT> >

Definition at line 292 of file shot.h.

## Constructor & Destructor Documentation

## SHOTColorEstimation()

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

pcl::SHOTColorEstimation< PointInT, PointNT, PointOutT, PointRFT >::SHOTColorEstimation | ( | bool | describe_shape = true,
|  | bool | describe_color = true )

inline

Empty constructor.

Parameters

  [in] | describe_shape |
  [in] | describe_color |

Definition at line 320 of file shot.h.

References b_describe_color_, b_describe_shape_, pcl::Feature< PointInT, pcl::SHOT1344 >::feature_name_, and pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >::SHOTEstimationBase().

## ~SHOTColorEstimation()

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

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

override default

Empty destructor.

## Member Function Documentation

## computeFeature()

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

void pcl::SHOTColorEstimation< PointInT, PointNT, PointOutT, PointRFT >::computeFeature | ( | pcl::PointCloud< PointOutT > & | output | ) |

override protected

Estimate the Signatures of Histograms of OrienTations (SHOT) descriptors at a set of points given by <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod ().

Parameters

  output | the resultant point cloud model dataset that contains the SHOT feature estimates

Definition at line 810 of file shot.hpp.

References b_describe_color_, b_describe_shape_, computePointSHOT(), pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >::descLength_, pcl::Feature< PointInT, pcl::SHOT1344 >::getClassName(), pcl::PCLBase< PointInT >::indices_, pcl::PCLBase< PointInT >::input_, pcl::PointCloud< PointT >::is_dense, pcl::isFinite(), pcl::Feature< PointInT, pcl::SHOT1344 >::k_, nr_color_bins_, pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >::nr_grid_sector_, pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >::nr_shape_bins_, pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >::radius1_2_, pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >::radius1_4_, pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >::radius3_4_, pcl::Feature< PointInT, pcl::SHOT1344 >::search_parameter_, pcl::Feature< PointInT, pcl::SHOT1344 >::search_radius_, pcl::Feature< PointInT, pcl::SHOT1344 >::searchForNeighbors(), and pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >::sqradius_.

## computePointSHOT()

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

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

override 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

Implements pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >.

Definition at line 628 of file shot.hpp.

References b_describe_color_, b_describe_shape_, pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >::createBinDistanceShape(), pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >::descLength_, pcl::Feature< PointInT, pcl::SHOT1344 >::getClassName(), pcl::PCLBase< PointInT >::indices_, interpolateDoubleChannel(), pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >::interpolateSingleChannel(), pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >::normalizeHistogram(), nr_color_bins_, pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >::nr_shape_bins_, and RGB2CIELAB().

Referenced by computeFeature().

## interpolateDoubleChannel()

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

void pcl::SHOTColorEstimation< PointInT, PointNT, PointOutT, PointRFT >::interpolateDoubleChannel | ( | const pcl::Indices & | indices,
|  | const std::vector< float > & | sqr_dists,
|  | const int | index,
|  | std::vector< double > & | binDistanceShape,
|  | std::vector< double > & | binDistanceColor,
|  | const int | nr_bins_shape,
|  | const int | nr_bins_color,
|  | Eigen::VectorXf & | shot )

protected

Quadrilinear interpolation; used when color and shape descriptions are both activated.

Parameters

  [in] | indices | the neighborhood point indices
  [in] | sqr_dists | the neighborhood point distances
  [in] | index | the index of the point in indices_
  [out] | binDistanceShape | the resultant distance shape histogram
  [out] | binDistanceColor | the resultant color shape histogram
  [in] | nr_bins_shape | the number of bins in the shape histogram
  [in] | nr_bins_color | the number of bins in the color histogram
  [out] | shot | the resultant SHOT histogram

Definition at line 412 of file shot.hpp.

References pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >::descLength_, pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >::maxAngularSectors_, pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >::nr_grid_sector_, pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >::radius1_2_, pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >::radius1_4_, and pcl::SHOTEstimationBase< PointInT, PointNT, pcl::SHOT1344, pcl::ReferenceFrame >::radius3_4_.

Referenced by computePointSHOT().

## RGB2CIELAB()

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

void pcl::SHOTColorEstimation< PointInT, PointNT, PointOutT, PointRFT >::RGB2CIELAB | ( | unsigned char | R,
|  | unsigned char | G,
|  | unsigned char | B,
|  | float & | L,
|  | float & | A,
|  | float & | B2 )

static

Converts RGB triplets to CIELab space.

Parameters

  [in] | R | the red channel
  [in] | G | the green channel
  [in] | B | the blue channel
  [out] | L | the lightness
  [out] | A | the first color-opponent dimension
  [out] | B2 | the second color-opponent dimension

Definition at line 100 of file shot.hpp.

References pcl::B, sRGB_LUT, and sXYZ_LUT.

Referenced by computePointSHOT().

## Member Data Documentation

## b_describe_color_

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

bool pcl::SHOTColorEstimation< PointInT, PointNT, PointOutT, PointRFT >::b_describe_color_

protected

Compute color descriptor.

Definition at line 376 of file shot.h.

Referenced by computeFeature(), computePointSHOT(), and SHOTColorEstimation().

## b_describe_shape_

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

bool pcl::SHOTColorEstimation< PointInT, PointNT, PointOutT, PointRFT >::b_describe_shape_

protected

Compute shape descriptor.

Definition at line 373 of file shot.h.

Referenced by computeFeature(), computePointSHOT(), and SHOTColorEstimation().

## nr_color_bins_

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

int pcl::SHOTColorEstimation< PointInT, PointNT, PointOutT, PointRFT >::nr_color_bins_ {30}

protected

The number of bins in each color histogram.

Definition at line 379 of file shot.h.

Referenced by computeFeature(), and computePointSHOT().

## sRGB_LUT

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

std::array< float, 256 > pcl::SHOTColorEstimation< PointInT, PointNT, PointOutT, PointRFT >::sRGB_LUT = pcl::RGB2sRGB_LUT<float, 8>()

static

Definition at line 393 of file shot.h.

Referenced by RGB2CIELAB().

## sXYZ_LUT

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

std::array< float, 4000 > pcl::SHOTColorEstimation< PointInT, PointNT, PointOutT, PointRFT >::sXYZ_LUT = pcl::XYZ2LAB_LUT<float, 4000>()

static

Definition at line 394 of file shot.h.

Referenced by RGB2CIELAB().

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

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