Point Cloud Library (PCL)  1.3.1
Public Types | Public Member Functions
pcl::PrincipalCurvaturesEstimation Class Reference

PrincipalCurvaturesEstimation estimates the directions (eigenvectors) and magnitudes (eigenvalues) of principal surface curvatures for a given point cloud dataset containing points and normals. More...

#include <pcl/features/principal_curvatures.h>

Inheritance diagram for pcl::PrincipalCurvaturesEstimation:
Inheritance graph
[legend]
Collaboration diagram for pcl::PrincipalCurvaturesEstimation:
Collaboration graph
[legend]

List of all members.

Public Types

typedef Feature< PointInT,
PointOutT >::PointCloudOut 
PointCloudOut
typedef pcl::PointCloud< PointInT > PointCloudIn
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 Member Functions

 PrincipalCurvaturesEstimation ()
 Empty constructor.
void computePointPrincipalCurvatures (const pcl::PointCloud< PointNT > &normals, int p_idx, const std::vector< int > &indices, float &pcx, float &pcy, float &pcz, float &pc1, float &pc2)
 Perform Principal Components Analysis (PCA) on the point normals of a surface patch in the tangent plane of the given point normal, and return the principal curvature (eigenvector of the max eigenvalue), along with both the max (pc1) and min (pc2) eigenvalues.
void setInputNormals (const PointCloudNConstPtr &normals)
 Provide a pointer to the input dataset that contains the point normals of the XYZ dataset.
PointCloudNConstPtr getInputNormals ()
 Get a pointer to the normals of the input XYZ point cloud dataset.

Detailed Description

PrincipalCurvaturesEstimation estimates the directions (eigenvectors) and magnitudes (eigenvalues) of principal surface curvatures for a given point cloud dataset containing points and normals.

Note:
The code is stateful as we do not expect this class to be multicore parallelized. Please look at NormalEstimationOpenMP and NormalEstimationTBB for examples on how to extend this to parallel implementations.
Author:
Radu Bogdan Rusu, Jared Glover

Member Typedef Documentation

typedef boost::shared_ptr< const FeatureFromNormals<PointInT, PointNT, PointOutT> > pcl::FeatureFromNormals::ConstPtr [inherited]

Definition at line 290 of file feature.h.

Reimplemented in pcl::SpinImageEstimation.

Definition at line 285 of file feature.h.

Reimplemented in pcl::SpinImageEstimation.

Definition at line 287 of file feature.h.

Reimplemented in pcl::SpinImageEstimation.

Definition at line 286 of file feature.h.

typedef boost::shared_ptr< FeatureFromNormals<PointInT, PointNT, PointOutT> > pcl::FeatureFromNormals::Ptr [inherited]

Definition at line 289 of file feature.h.


Constructor & Destructor Documentation

pcl::PrincipalCurvaturesEstimation::PrincipalCurvaturesEstimation ( ) [inline]

Empty constructor.

Definition at line 71 of file principal_curvatures.h.


Member Function Documentation

void pcl::PrincipalCurvaturesEstimation::computePointPrincipalCurvatures ( const pcl::PointCloud< PointNT > &  normals,
int  p_idx,
const std::vector< int > &  indices,
float &  pcx,
float &  pcy,
float &  pcz,
float &  pc1,
float &  pc2 
)

Perform Principal Components Analysis (PCA) on the point normals of a surface patch in the tangent plane of the given point normal, and return the principal curvature (eigenvector of the max eigenvalue), along with both the max (pc1) and min (pc2) eigenvalues.

Parameters:
normalsthe point cloud normals
p_idxthe query point at which the least-squares plane was estimated
indicesthe point cloud indices that need to be used
pcxthe principal curvature X direction
pcythe principal curvature Y direction
pczthe principal curvature Z direction
pc1the max eigenvalue of curvature
pc2the min eigenvalue of curvature

Definition at line 45 of file principal_curvatures.hpp.

PointCloudNConstPtr pcl::FeatureFromNormals::getInputNormals ( ) [inline, inherited]

Get a pointer to the normals of the input XYZ point cloud dataset.

Definition at line 312 of file feature.h.

void pcl::FeatureFromNormals::setInputNormals ( const PointCloudNConstPtr normals) [inline, inherited]

Provide a pointer to the input dataset that contains the point normals of the XYZ dataset.

In case of search surface is set to be different from the input cloud, normals should correspond to the search surface, not the input cloud!

Parameters:
normalsthe const boost shared pointer to a PointCloud of normals. By convention, L2 norm of each normal should be 1.

Definition at line 308 of file feature.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines