Point Cloud Library (PCL)  1.6.0
Classes | Functions
Module features

Detailed Description

Overview

The pcl_features library contains data structures and mechanisms for 3D feature estimation from point cloud data. 3D features are representations at a certain 3D point or position in space, which describe geometrical patterns based on the information available around the point. The data space selected around the query point is usually referred as the k-neighborhood.

The following figure shows a simple example of a selected query point, and its selected k-neighborhood.

features_normal.png

An example of two of the most widely used geometric point features are the underlying surface's estimated curvature and normal at a query point p. Both of them are considered local features, as they characterize a point using the information provided by its k closest point neighbors. For determining these neighbors efficienctly, the input dataset is usually split into smaller chunks using spatial decomposition techniques such as octrees or kD-trees (see the figure below - left: kD-tree, right: octree), and then closest point searches are performed in that space. Depending on the application one can opt for either determining a fixed number of k points in the vecinity of p, or all points which are found inside of a sphere of radius r centered at p. Unarguably, one the easiest methods for estimating the surface normals and curvature changes at a point p is to perform an eigendecomposition (i.e. compute the eigenvectors and eigenvalues) of the k-neighborhood point surface patch. Thus, the eigenvector corresponding to the smallest eigenvalue will approximate the surface normal n at point p, while the surface curvature change will be estimated from the eigenvalues as:

$\frac{\lambda_0}{\lambda_0 + \lambda_1 + \lambda_2}$, where $\lambda_0 < \lambda_1 < \lambda_2$.
features_bunny.png

Please visit http://www.pointclouds.org for more information.

Requirements

Classes

class  pcl::ShapeContext3DEstimation< PointInT, PointNT, PointOutT >
 ShapeContext3DEstimation implements the 3D shape context descriptor as described in: More...
class  pcl::ShapeContext3DEstimation< PointInT, PointNT, Eigen::MatrixXf >
 ShapeContext3DEstimation implements the 3D shape context descriptor as described in: More...
class  pcl::BoundaryEstimation< PointInT, PointNT, PointOutT >
 BoundaryEstimation estimates whether a set of points is lying on surface boundaries using an angle criterion. More...
class  pcl::BoundaryEstimation< PointInT, PointNT, Eigen::MatrixXf >
 BoundaryEstimation estimates whether a set of points is lying on surface boundaries using an angle criterion. More...
class  pcl::CVFHEstimation< PointInT, PointNT, PointOutT >
 CVFHEstimation estimates the Clustered Viewpoint Feature Histogram (CVFH) descriptor for a given point cloud dataset containing XYZ data and normals, as presented in: More...
class  pcl::ESFEstimation< PointInT, PointOutT >
 ESFEstimation estimates the ensemble of shape functions descriptors for a given point cloud dataset containing points. More...
class  pcl::Feature< PointInT, PointOutT >
 Feature represents the base feature class. More...
class  pcl::FeatureWithLocalReferenceFrames< PointInT, PointRFT >
 FeatureWithLocalReferenceFrames provides a public interface for descriptor extractor classes which need a local reference frame at each input keypoint. More...
class  pcl::FPFHEstimation< PointInT, PointNT, PointOutT >
 FPFHEstimation estimates the Fast Point Feature Histogram (FPFH) descriptor for a given point cloud dataset containing points and normals. More...
class  pcl::FPFHEstimation< PointInT, PointNT, Eigen::MatrixXf >
 FPFHEstimation estimates the Fast Point Feature Histogram (FPFH) descriptor for a given point cloud dataset containing points and normals. More...
class  pcl::FPFHEstimationOMP< PointInT, PointNT, PointOutT >
 FPFHEstimationOMP estimates the Fast Point Feature Histogram (FPFH) descriptor for a given point cloud dataset containing points and normals, in parallel, using the OpenMP standard. More...
class  pcl::IntensityGradientEstimation< PointInT, PointNT, PointOutT, IntensitySelectorT >
 IntensityGradientEstimation estimates the intensity gradient for a point cloud that contains position and intensity values. More...
class  pcl::IntensityGradientEstimation< PointInT, PointNT, Eigen::MatrixXf >
 IntensityGradientEstimation estimates the intensity gradient for a point cloud that contains position and intensity values. More...
class  pcl::IntensitySpinEstimation< PointInT, PointOutT >
 IntensitySpinEstimation estimates the intensity-domain spin image descriptors for a given point cloud dataset containing points and intensity. More...
class  pcl::IntensitySpinEstimation< PointInT, Eigen::MatrixXf >
 IntensitySpinEstimation estimates the intensity-domain spin image descriptors for a given point cloud dataset containing points and intensity. More...
class  pcl::MomentInvariantsEstimation< PointInT, PointOutT >
 MomentInvariantsEstimation estimates the 3 moment invariants (j1, j2, j3) at each 3D point. More...
class  pcl::MomentInvariantsEstimation< PointInT, Eigen::MatrixXf >
 MomentInvariantsEstimation estimates the 3 moment invariants (j1, j2, j3) at each 3D point. More...
class  pcl::Narf
 NARF (Normal Aligned Radial Features) is a point feature descriptor type for 3D data. More...
class  pcl::NarfDescriptor
 Computes NARF feature descriptors for points in a range image More...
class  pcl::NormalEstimation< PointInT, PointOutT >
 NormalEstimation estimates local surface properties (surface normals and curvatures)at each 3D point. More...
class  pcl::NormalEstimation< PointInT, Eigen::MatrixXf >
 NormalEstimation estimates local surface properties at each 3D point, such as surface normals and curvatures. More...
class  pcl::NormalEstimationOMP< PointInT, PointOutT >
 NormalEstimationOMP estimates local surface properties at each 3D point, such as surface normals and curvatures, in parallel, using the OpenMP standard. More...
class  pcl::NormalEstimationOMP< PointInT, Eigen::MatrixXf >
 NormalEstimationOMP estimates local surface properties at each 3D point, such as surface normals and curvatures, in parallel, using the OpenMP standard. More...
class  pcl::PFHEstimation< PointInT, PointNT, PointOutT >
 PFHEstimation estimates the Point Feature Histogram (PFH) descriptor for a given point cloud dataset containing points and normals. More...
class  pcl::PFHEstimation< PointInT, PointNT, Eigen::MatrixXf >
 PFHEstimation estimates the Point Feature Histogram (PFH) descriptor for a given point cloud dataset containing points and normals. More...
class  pcl::PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT >
 PrincipalCurvaturesEstimation estimates the directions (eigenvectors) and magnitudes (eigenvalues) of principal surface curvatures for a given point cloud dataset containing points and normals. More...
class  pcl::PrincipalCurvaturesEstimation< PointInT, PointNT, Eigen::MatrixXf >
 PrincipalCurvaturesEstimation estimates the directions (eigenvectors) and magnitudes (eigenvalues) of principal surface curvatures for a given point cloud dataset containing points and normals. More...
class  pcl::RangeImageBorderExtractor
 Extract obstacle borders from range images, meaning positions where there is a transition from foreground to background. More...
class  pcl::RIFTEstimation< PointInT, GradientT, PointOutT >
 RIFTEstimation estimates the Rotation Invariant Feature Transform descriptors for a given point cloud dataset containing points and intensity. More...
class  pcl::RIFTEstimation< PointInT, GradientT, Eigen::MatrixXf >
 RIFTEstimation estimates the Rotation Invariant Feature Transform descriptors for a given point cloud dataset containing points and intensity. More...
class  pcl::RSDEstimation< PointInT, PointNT, PointOutT >
 RSDEstimation estimates the Radius-based Surface Descriptor (minimal and maximal radius of the local surface's curves) for a given point cloud dataset containing points and normals. More...
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. More...
class  pcl::SHOTEstimation< PointInT, PointNT, PointOutT, PointRFT >
 SHOTEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points and normals. More...
class  pcl::SHOTEstimation< PointInT, PointNT, Eigen::MatrixXf, PointRFT >
 SHOTEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points and normals. More...
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. More...
class  pcl::SHOTLocalReferenceFrameEstimation< PointInT, PointOutT >
 SHOTLocalReferenceFrameEstimation estimates the Local Reference Frame used in the calculation of the (SHOT) descriptor. More...
class  pcl::SHOTLocalReferenceFrameEstimationOMP< PointInT, PointOutT >
 SHOTLocalReferenceFrameEstimation estimates the Local Reference Frame used in the calculation of the (SHOT) descriptor. More...
class  pcl::SHOTEstimationOMP< PointInT, PointNT, PointOutT, PointRFT >
 SHOTEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points and normals, in parallel, using the OpenMP standard. More...
class  pcl::SpinImageEstimation< PointInT, PointNT, PointOutT >
 Estimates spin-image descriptors in the given input points. More...
class  pcl::SpinImageEstimation< PointInT, PointNT, Eigen::MatrixXf >
 Estimates spin-image descriptors in the given input points. More...
class  pcl::UniqueShapeContext< PointInT, PointOutT, PointRFT >
 UniqueShapeContext implements the Unique Shape Descriptor described here: More...
class  pcl::UniqueShapeContext< PointInT, Eigen::MatrixXf, PointRFT >
 UniqueShapeContext implements the Unique Shape Descriptor described here: More...
class  pcl::VFHEstimation< PointInT, PointNT, PointOutT >
 VFHEstimation estimates the Viewpoint Feature Histogram (VFH) descriptor for a given point cloud dataset containing points and normals. More...

Functions

void pcl::solvePlaneParameters (const Eigen::Matrix3f &covariance_matrix, const Eigen::Vector4f &point, Eigen::Vector4f &plane_parameters, float &curvature)
 Solve the eigenvalues and eigenvectors of a given 3x3 covariance matrix, and estimate the least-squares plane normal and surface curvature.
void pcl::solvePlaneParameters (const Eigen::Matrix3f &covariance_matrix, float &nx, float &ny, float &nz, float &curvature)
 Solve the eigenvalues and eigenvectors of a given 3x3 covariance matrix, and estimate the least-squares plane normal and surface curvature.
template<typename PointT >
void pcl::computePointNormal (const pcl::PointCloud< PointT > &cloud, Eigen::Vector4f &plane_parameters, float &curvature)
 Compute the Least-Squares plane fit for a given set of points, and return the estimated plane parameters together with the surface curvature.
template<typename PointT >
void pcl::computePointNormal (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, Eigen::Vector4f &plane_parameters, float &curvature)
 Compute the Least-Squares plane fit for a given set of points, using their indices, and return the estimated plane parameters together with the surface curvature.
template<typename PointT , typename Scalar >
void pcl::flipNormalTowardsViewpoint (const PointT &point, float vp_x, float vp_y, float vp_z, Eigen::Matrix< Scalar, 4, 1 > &normal)
 Flip (in place) the estimated normal of a point towards a given viewpoint.
template<typename PointT , typename Scalar >
void pcl::flipNormalTowardsViewpoint (const PointT &point, float vp_x, float vp_y, float vp_z, Eigen::Matrix< Scalar, 3, 1 > &normal)
 Flip (in place) the estimated normal of a point towards a given viewpoint.
template<typename PointT >
void pcl::flipNormalTowardsViewpoint (const PointT &point, float vp_x, float vp_y, float vp_z, float &nx, float &ny, float &nz)
 Flip (in place) the estimated normal of a point towards a given viewpoint.
PCL_EXPORTS bool pcl::computePairFeatures (const Eigen::Vector4f &p1, const Eigen::Vector4f &n1, const Eigen::Vector4f &p2, const Eigen::Vector4f &n2, float &f1, float &f2, float &f3, float &f4)
 Compute the 4-tuple representation containing the three angles and one distance between two points represented by Cartesian coordinates and normals.
template<int N>
void pcl::getFeaturePointCloud (const std::vector< Eigen::MatrixXf, Eigen::aligned_allocator< Eigen::MatrixXf > > &histograms2D, PointCloud< Histogram< N > > &histogramsPC)
 Transform a list of 2D matrices into a point cloud containing the values in a vector (Histogram<N>).
template<typename PointInT , typename PointNT , typename PointOutT >
Eigen::MatrixXf pcl::computeRSD (boost::shared_ptr< const pcl::PointCloud< PointInT > > &surface, boost::shared_ptr< const pcl::PointCloud< PointNT > > &normals, const std::vector< int > &indices, double max_dist, int nr_subdiv, double plane_radius, PointOutT &radii, bool compute_histogram=false)
 Estimate the Radius-based Surface Descriptor (RSD) for a given point based on its spatial neighborhood of 3D points with normals.
template<typename PointNT , typename PointOutT >
Eigen::MatrixXf pcl::computeRSD (boost::shared_ptr< const pcl::PointCloud< PointNT > > &normals, const std::vector< int > &indices, const std::vector< float > &sqr_dists, double max_dist, int nr_subdiv, double plane_radius, PointOutT &radii, bool compute_histogram=false)
 Estimate the Radius-based Surface Descriptor (RSD) for a given point based on its spatial neighborhood of 3D points with normals.
template<typename PointInT , typename PointNT , typename PointRFT >
class pcl::PCL_DEPRECATED_CLASS (SHOTEstimation,"SHOTEstimation<..., pcl::SHOT, ...> IS DEPRECATED, USE SHOTEstimation<..., pcl::SHOT352, ...> INSTEAD")< PointInT
 SHOTEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points and normals.
template<typename PointNT , typename PointRFT >
class pcl::PCL_DEPRECATED_CLASS (SHOTEstimation,"SHOTEstimation<pcl::PointXYZRGBA,...,pcl::SHOT,...> IS DEPRECATED, USE SHOTEstimation<pcl::PointXYZRGBA,...,pcl::SHOT352,...> FOR SHAPE AND SHOTColorEstimation<pcl::PointXYZRGBA,...,pcl::SHOT1344,...> FOR SHAPE+COLOR INSTEAD")< pcl
 SHOTEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points and normals.
template<typename PointNT , typename PointRFT >
class pcl::PCL_DEPRECATED_CLASS (SHOTEstimation,"SHOTEstimation<pcl::PointXYZRGBA,...,Eigen::MatrixXf,...> IS DEPRECATED, USE SHOTColorEstimation<pcl::PointXYZRGBA,...,Eigen::MatrixXf,...> FOR SHAPE AND SHAPE+COLOR INSTEAD")< pcl
 SHOTEstimation estimates the Signature of Histograms of OrienTations (SHOT) descriptor for a given point cloud dataset containing points and normals.

Function Documentation

PCL_EXPORTS bool pcl::computePairFeatures ( const Eigen::Vector4f &  p1,
const Eigen::Vector4f &  n1,
const Eigen::Vector4f &  p2,
const Eigen::Vector4f &  n2,
float &  f1,
float &  f2,
float &  f3,
float &  f4 
)

Compute the 4-tuple representation containing the three angles and one distance between two points represented by Cartesian coordinates and normals.

Note:
For explanations about the features, please see the literature mentioned above (the order of the features might be different).
Parameters:
[in]p1the first XYZ point
[in]n1the first surface normal
[in]p2the second XYZ point
[in]n2the second surface normal
[out]f1the first angular feature (angle between the projection of nq_idx and u)
[out]f2the second angular feature (angle between nq_idx and v)
[out]f3the third angular feature (angle between np_idx and |p_idx - q_idx|)
[out]f4the distance feature (p_idx - q_idx)
Note:
For efficiency reasons, we assume that the point data passed to the method is finite.
template<typename PointT >
void pcl::computePointNormal ( const pcl::PointCloud< PointT > &  cloud,
Eigen::Vector4f &  plane_parameters,
float &  curvature 
) [inline]

Compute the Least-Squares plane fit for a given set of points, and return the estimated plane parameters together with the surface curvature.

Parameters:
cloudthe input point cloud
plane_parametersthe plane parameters as: a, b, c, d (ax + by + cz + d = 0)
curvaturethe estimated surface curvature as a measure of

\[ \lambda_0 / (\lambda_0 + \lambda_1 + \lambda_2) \]

Definition at line 58 of file normal_3d.h.

template<typename PointT >
void pcl::computePointNormal ( const pcl::PointCloud< PointT > &  cloud,
const std::vector< int > &  indices,
Eigen::Vector4f &  plane_parameters,
float &  curvature 
) [inline]

Compute the Least-Squares plane fit for a given set of points, using their indices, and return the estimated plane parameters together with the surface curvature.

Parameters:
cloudthe input point cloud
indicesthe point cloud indices that need to be used
plane_parametersthe plane parameters as: a, b, c, d (ax + by + cz + d = 0)
curvaturethe estimated surface curvature as a measure of

\[ \lambda_0 / (\lambda_0 + \lambda_1 + \lambda_2) \]

Definition at line 89 of file normal_3d.h.

template<typename PointInT , typename PointNT , typename PointOutT >
Eigen::MatrixXf pcl::computeRSD ( boost::shared_ptr< const pcl::PointCloud< PointInT > > &  surface,
boost::shared_ptr< const pcl::PointCloud< PointNT > > &  normals,
const std::vector< int > &  indices,
double  max_dist,
int  nr_subdiv,
double  plane_radius,
PointOutT &  radii,
bool  compute_histogram = false 
)

Estimate the Radius-based Surface Descriptor (RSD) for a given point based on its spatial neighborhood of 3D points with normals.

Parameters:
[in]surfacethe dataset containing the XYZ points
[in]normalsthe dataset containing the surface normals at each point in the dataset
[in]indicesthe neighborhood point indices in the dataset (first point is used as the reference)
[in]max_distthe upper bound for the considered distance interval
[in]nr_subdivthe number of subdivisions for the considered distance interval
[in]plane_radiusmaximum radius, above which everything can be considered planar
[in]radiithe output point of a type that should have r_min and r_max fields
[in]compute_histogramif not false, the full neighborhood histogram is provided, usable as a point signature
Note:
: orientation is neglected!
: we neglect points that are outside the specified interval!

Definition at line 46 of file rsd.hpp.

template<typename PointNT , typename PointOutT >
Eigen::MatrixXf pcl::computeRSD ( boost::shared_ptr< const pcl::PointCloud< PointNT > > &  normals,
const std::vector< int > &  indices,
const std::vector< float > &  sqr_dists,
double  max_dist,
int  nr_subdiv,
double  plane_radius,
PointOutT &  radii,
bool  compute_histogram = false 
)

Estimate the Radius-based Surface Descriptor (RSD) for a given point based on its spatial neighborhood of 3D points with normals.

Parameters:
[in]normalsthe dataset containing the surface normals at each point in the dataset
[in]indicesthe neighborhood point indices in the dataset (first point is used as the reference)
[in]sqr_diststhe squared distances from the first to all points in the neighborhood
[in]max_distthe upper bound for the considered distance interval
[in]nr_subdivthe number of subdivisions for the considered distance interval
[in]plane_radiusmaximum radius, above which everything can be considered planar
[in]radiithe output point of a type that should have r_min and r_max fields
[in]compute_histogramif not false, the full neighborhood histogram is provided, usable as a point signature
Note:
: orientation is neglected!
: we neglect points that are outside the specified interval!

Definition at line 147 of file rsd.hpp.

template<typename PointT , typename Scalar >
void pcl::flipNormalTowardsViewpoint ( const PointT point,
float  vp_x,
float  vp_y,
float  vp_z,
Eigen::Matrix< Scalar, 4, 1 > &  normal 
) [inline]

Flip (in place) the estimated normal of a point towards a given viewpoint.

Parameters:
pointa given point
vp_xthe X coordinate of the viewpoint
vp_ythe X coordinate of the viewpoint
vp_zthe X coordinate of the viewpoint
normalthe plane normal to be flipped

Definition at line 115 of file normal_3d.h.

template<typename PointT , typename Scalar >
void pcl::flipNormalTowardsViewpoint ( const PointT point,
float  vp_x,
float  vp_y,
float  vp_z,
Eigen::Matrix< Scalar, 3, 1 > &  normal 
) [inline]

Flip (in place) the estimated normal of a point towards a given viewpoint.

Parameters:
pointa given point
vp_xthe X coordinate of the viewpoint
vp_ythe X coordinate of the viewpoint
vp_zthe X coordinate of the viewpoint
normalthe plane normal to be flipped

Definition at line 142 of file normal_3d.h.

template<typename PointT >
void pcl::flipNormalTowardsViewpoint ( const PointT point,
float  vp_x,
float  vp_y,
float  vp_z,
float &  nx,
float &  ny,
float &  nz 
) [inline]

Flip (in place) the estimated normal of a point towards a given viewpoint.

Parameters:
pointa given point
vp_xthe X coordinate of the viewpoint
vp_ythe X coordinate of the viewpoint
vp_zthe X coordinate of the viewpoint
nxthe resultant X component of the plane normal
nythe resultant Y component of the plane normal
nzthe resultant Z component of the plane normal

Definition at line 163 of file normal_3d.h.

template<int N>
void pcl::getFeaturePointCloud ( const std::vector< Eigen::MatrixXf, Eigen::aligned_allocator< Eigen::MatrixXf > > &  histograms2D,
PointCloud< Histogram< N > > &  histogramsPC 
)

Transform a list of 2D matrices into a point cloud containing the values in a vector (Histogram<N>).

Can be used to transform the 2D histograms obtained in RSDEstimation into a point cloud.

Note:
The template paramter N should be (greater or) equal to the product of the number of rows and columns.
Parameters:
[in]histograms2Dthe list of neighborhood 2D histograms
[out]histogramsPCthe dataset containing the linearized matrices

Definition at line 53 of file rsd.h.

template<typename PointInT , typename PointNT , typename PointRFT >
class pcl::PCL_DEPRECATED_CLASS ( SHOTEstimation  ,
"SHOTEstimation<..., pcl::SHOT, ...> IS  DEPRECATED,
USE SHOTEstimation<..., pcl::SHOT352,...> INSTEAD"   
)

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

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
template<typename PointNT , typename PointRFT >
class pcl::PCL_DEPRECATED_CLASS ( SHOTEstimation  ,
"SHOTEstimation<pcl::PointXYZRGBA,...,pcl::SHOT,...> IS  DEPRECATED,
USE SHOTEstimation< pcl::PointXYZRGBA,..., pcl::SHOT352,...> FOR SHAPE AND SHOTColorEstimation< pcl::PointXYZRGBA,..., pcl::SHOT1344,...> FOR SHAPE+COLOR INSTEAD"   
)

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

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

Empty constructor.

Parameters:
[in]describe_shape
[in]describe_color
[in]nr_shape_bins
[in]nr_color_bins

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

Parameters:
[in]indexthe index of the point in indices_
[in]indicesthe k-neighborhood point indices in surface_
[in]sqr_diststhe k-neighborhood point distances in surface_
[out]shotthe resultant SHOT descriptor representing the feature at the query point

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:
[out]outputthe resultant point cloud model dataset that contains the SHOT feature estimates

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

Parameters:
[in]indicesthe neighborhood point indices
[in]sqr_diststhe neighborhood point distances
[in]indexthe index of the point in indices_
[out]binDistanceShapethe resultant distance shape histogram
[out]binDistanceColorthe resultant color shape histogram
[in]nr_bins_shapethe number of bins in the shape histogram
[in]nr_bins_colorthe number of bins in the color histogram
[out]shotthe resultant SHOT histogram

Converts RGB triplets to CIELab space.

Parameters:
[in]Rthe red channel
[in]Gthe green channel
[in]Bthe blue channel
[out]Lthe lightness
[out]Athe first color-opponent dimension
[out]B2the second color-opponent dimension

Compute shape descriptor.

Compute color descriptor.

The number of bins in each color histogram.

Definition at line 706 of file shot.h.

template<typename PointNT , typename PointRFT >
class pcl::PCL_DEPRECATED_CLASS ( SHOTEstimation  ,
"SHOTEstimation<pcl::PointXYZRGBA,...,Eigen::MatrixXf,...> IS  DEPRECATED,
USE SHOTColorEstimation< pcl::PointXYZRGBA,..., Eigen::MatrixXf,...> FOR SHAPE AND SHAPE+COLOR INSTEAD"   
)

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

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

Empty constructor.

Parameters:
[in]describe_shape
[in]describe_color
[in]nr_shape_bins
[in]nr_color_bins

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:
[out]outputthe resultant point cloud model dataset that contains the SHOT feature estimates

Make the compute (&PointCloudOut); inaccessible from outside the class

Parameters:
[out]outputthe output point cloud

Definition at line 838 of file shot.h.

void pcl::solvePlaneParameters ( const Eigen::Matrix3f &  covariance_matrix,
const Eigen::Vector4f &  point,
Eigen::Vector4f &  plane_parameters,
float &  curvature 
) [inline]

Solve the eigenvalues and eigenvectors of a given 3x3 covariance matrix, and estimate the least-squares plane normal and surface curvature.

Parameters:
covariance_matrixthe 3x3 covariance matrix
pointa point lying on the least-squares plane (SSE aligned)
plane_parametersthe resultant plane parameters as: a, b, c, d (ax + by + cz + d = 0)
curvaturethe estimated surface curvature as a measure of

\[ \lambda_0 / (\lambda_0 + \lambda_1 + \lambda_2) \]

Definition at line 47 of file feature.hpp.

void pcl::solvePlaneParameters ( const Eigen::Matrix3f &  covariance_matrix,
float &  nx,
float &  ny,
float &  nz,
float &  curvature 
) [inline]

Solve the eigenvalues and eigenvectors of a given 3x3 covariance matrix, and estimate the least-squares plane normal and surface curvature.

Parameters:
covariance_matrixthe 3x3 covariance matrix
nxthe resultant X component of the plane normal
nythe resultant Y component of the plane normal
nzthe resultant Z component of the plane normal
curvaturethe estimated surface curvature as a measure of

\[ \lambda_0 / (\lambda_0 + \lambda_1 + \lambda_2) \]

Definition at line 60 of file feature.hpp.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines