pcl::PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT > Class Template Reference
[Module features]

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< PointInT, PointNT, PointOutT >:
Inheritance graph
[legend]
Collaboration diagram for pcl::PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT >:
Collaboration graph
[legend]

List of all members.

Public Types

typedef boost::shared_ptr
< PrincipalCurvaturesEstimation
< PointInT, PointNT, PointOutT > > 
Ptr
typedef boost::shared_ptr
< const
PrincipalCurvaturesEstimation
< PointInT, PointNT, PointOutT > > 
ConstPtr
typedef Feature< PointInT,
PointOutT >::PointCloudOut 
PointCloudOut
typedef pcl::PointCloud< PointInT > PointCloudIn

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.

Protected Member Functions

void computeFeature (PointCloudOut &output)
 Estimate the principal curvature (eigenvector of the max eigenvalue), along with both the max (pc1) and min (pc2) eigenvalues for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod ().

Detailed Description

template<typename PointInT, typename PointNT, typename PointOutT = pcl::PrincipalCurvatures>
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.

The recommended PointOutT is pcl::PrincipalCurvatures.

Note:
The code is stateful as we do not expect this class to be multicore parallelized. Please look at NormalEstimationOMP for an example on how to extend this to parallel implementations.
Author:
Radu B. Rusu, Jared Glover

Definition at line 61 of file principal_curvatures.h.


Member Typedef Documentation

template<typename PointInT , typename PointNT , typename PointOutT = pcl::PrincipalCurvatures>
typedef boost::shared_ptr<const PrincipalCurvaturesEstimation<PointInT, PointNT, PointOutT> > pcl::PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT >::ConstPtr
template<typename PointInT , typename PointNT , typename PointOutT = pcl::PrincipalCurvatures>
typedef pcl::PointCloud<PointInT> pcl::PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT >::PointCloudIn
template<typename PointInT , typename PointNT , typename PointOutT = pcl::PrincipalCurvatures>
typedef Feature<PointInT, PointOutT>::PointCloudOut pcl::PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT >::PointCloudOut
template<typename PointInT , typename PointNT , typename PointOutT = pcl::PrincipalCurvatures>
typedef boost::shared_ptr<PrincipalCurvaturesEstimation<PointInT, PointNT, PointOutT> > pcl::PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT >::Ptr

Constructor & Destructor Documentation

template<typename PointInT , typename PointNT , typename PointOutT = pcl::PrincipalCurvatures>
pcl::PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT >::PrincipalCurvaturesEstimation (  )  [inline]

Empty constructor.

Definition at line 79 of file principal_curvatures.h.

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


Member Function Documentation

template<typename PointInT , typename PointNT , typename PointOutT >
void pcl::PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT >::computeFeature ( PointCloudOut output  )  [inline, protected, virtual]

Estimate the principal curvature (eigenvector of the max eigenvalue), along with both the max (pc1) and min (pc2) eigenvalues for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod ().

Parameters:
[out] output the resultant point cloud model dataset that contains the principal curvature estimates

Implements pcl::Feature< PointInT, PointOutT >.

Definition at line 114 of file principal_curvatures.hpp.

References pcl::PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT >::computePointPrincipalCurvatures(), pcl::PCLBase< PointInT >::indices_, pcl::PCLBase< PointInT >::input_, pcl::PointCloud< PointT >::is_dense, pcl::isFinite(), pcl::Feature< PointInT, PointOutT >::k_, pcl::FeatureFromNormals< PointInT, PointNT, PointOutT >::normals_, pcl::PointCloud< PointT >::points, pcl::Feature< PointInT, PointOutT >::search_parameter_, and pcl::Feature< PointInT, PointOutT >::searchForNeighbors().

template<typename PointInT , typename PointNT , typename PointOutT >
void pcl::PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT >::computePointPrincipalCurvatures ( const pcl::PointCloud< PointNT > &  normals,
int  p_idx,
const std::vector< int > &  indices,
float &  pcx,
float &  pcy,
float &  pcz,
float &  pc1,
float &  pc2 
) [inline]

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:
[in] normals the point cloud normals
[in] p_idx the query point at which the least-squares plane was estimated
[in] indices the point cloud indices that need to be used
[out] pcx the principal curvature X direction
[out] pcy the principal curvature Y direction
[out] pcz the principal curvature Z direction
[out] pc1 the max eigenvalue of curvature
[out] pc2 the min eigenvalue of curvature

Definition at line 48 of file principal_curvatures.hpp.

References pcl::computeCorrespondingEigenVector(), pcl::eigen33(), pcl::EIGEN_ALIGN16, and pcl::PointCloud< PointT >::points.

Referenced by pcl::PrincipalCurvaturesEstimation< PointInT, PointNT, PointOutT >::computeFeature().


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