pcl::PCA< PointT > Class Template Reference
[Module common]

Principal Component analysis (PCA) class. More...

#include <pcl/common/pca.h>

Inheritance diagram for pcl::PCA< PointT >:
Inheritance graph
[legend]
Collaboration diagram for pcl::PCA< PointT >:
Collaboration graph
[legend]

List of all members.

Public Types

enum  FLAG { increase, preserve }
 

Updating method flag.

More...
typedef pcl::PCLBase< PointTBase
typedef Base::PointCloud PointCloud
typedef Base::PointCloudPtr PointCloudPtr
typedef Base::PointCloudConstPtr PointCloudConstPtr
typedef Base::PointIndicesPtr PointIndicesPtr
typedef Base::PointIndicesConstPtr PointIndicesConstPtr

Public Member Functions

 compute_done_ (false)
 basis_only_ (basis_only)
 eigenvectors_ ()
 coefficients_ ()
 mean_ ()
 eigenvalues_ ()
 PCL_DEPRECATED (PCA(const pcl::PointCloud< PointT > &X, bool basis_only=false),"Use PCA (bool basis_only); setInputCloud (X.makeShared ()); instead")
 Constructor with direct computation X input m*n matrix (ie n vectors of R(m)) basis_only flag to compute only the PCA basis.
 compute_done_ (pca.compute_done_)
 basis_only_ (pca.basis_only_)
 eigenvectors_ (pca.eigenvectors_)
 coefficients_ (pca.coefficients_)
 mean_ (pca.mean_)
 eigenvalues_ (pca.eigenvalues_)
PCAoperator= (PCA const &pca)
 Assignment operator.
void setInputCloud (const PointCloudConstPtr &cloud)
 Provide a pointer to the input dataset.
Eigen::Vector4f & getMean ()
 Mean accessor.
Eigen::Matrix3f & getEigenVectors ()
 Eigen Vectors accessor.
Eigen::Vector3f & getEigenValues ()
 Eigen Values accessor.
Eigen::MatrixXf & getCoefficients ()
 Coefficients accessor.
void update (const PointT &input, FLAG flag=preserve)
 update PCA with a new point
void project (const PointT &input, PointT &projection)
 Project point on the eigenspace.
void project (const PointCloud &input, PointCloud &projection)
 Project cloud on the eigenspace.
void reconstruct (const PointT &projection, PointT &input)
 Reconstruct point from its projection.
void reconstruct (const PointCloud &projection, PointCloud &input)
 Reconstruct cloud from its projection.

Public Attributes

 __pad0__: Base ()
 Default Constructor.
 __pad1__: Base (pca)
 Copy Constructor.

Detailed Description

template<typename PointT>
class pcl::PCA< PointT >

Principal Component analysis (PCA) class.


Principal components are extracted by singular values decomposition on the covariance matrix of the centered input cloud. Available data after pca computation are the mean of the input data, the eigenvalues (in descending order) and corresponding eigenvectors.
Other methods allow projection in the eigenspace, reconstruction from eigenspace and update of the eigenspace with a new datum (according Matej Artec, Matjaz Jogan and Ales Leonardis: "Incremental PCA for On-line Visual Learning and Recognition").

Author:
Nizar Sallem

Definition at line 60 of file pca.h.


Member Typedef Documentation

template<typename PointT >
typedef pcl::PCLBase<PointT> pcl::PCA< PointT >::Base

Definition at line 63 of file pca.h.

template<typename PointT >
typedef Base::PointCloud pcl::PCA< PointT >::PointCloud

Reimplemented from pcl::PCLBase< PointT >.

Definition at line 64 of file pca.h.

template<typename PointT >
typedef Base::PointCloudConstPtr pcl::PCA< PointT >::PointCloudConstPtr

Reimplemented from pcl::PCLBase< PointT >.

Definition at line 66 of file pca.h.

template<typename PointT >
typedef Base::PointCloudPtr pcl::PCA< PointT >::PointCloudPtr

Reimplemented from pcl::PCLBase< PointT >.

Definition at line 65 of file pca.h.

template<typename PointT >
typedef Base::PointIndicesConstPtr pcl::PCA< PointT >::PointIndicesConstPtr

Reimplemented from pcl::PCLBase< PointT >.

Definition at line 68 of file pca.h.

template<typename PointT >
typedef Base::PointIndicesPtr pcl::PCA< PointT >::PointIndicesPtr

Reimplemented from pcl::PCLBase< PointT >.

Definition at line 67 of file pca.h.


Member Enumeration Documentation

template<typename PointT >
enum pcl::PCA::FLAG

Updating method flag.

Enumerator:
increase 

keep the new basis vectors if possible

preserve 

preserve subspace dimension

Definition at line 76 of file pca.h.


Member Function Documentation

template<typename PointT >
pcl::PCA< PointT >::basis_only_ ( pca.  basis_only_  ) 
template<typename PointT >
pcl::PCA< PointT >::basis_only_ ( basis_only   ) 
template<typename PointT >
pcl::PCA< PointT >::coefficients_ ( pca.  coefficients_  ) 
template<typename PointT >
pcl::PCA< PointT >::coefficients_ (  ) 
template<typename PointT >
pcl::PCA< PointT >::compute_done_ ( pca.  compute_done_  ) 
Type Constraints
template<typename PointT >
pcl::PCA< PointT >::compute_done_ ( false   ) 
Type Constraints
template<typename PointT >
pcl::PCA< PointT >::eigenvalues_ ( pca.  eigenvalues_  )  [inline]

Definition at line 114 of file pca.h.

template<typename PointT >
pcl::PCA< PointT >::eigenvalues_ (  )  [inline]
template<typename PointT >
pcl::PCA< PointT >::eigenvectors_ ( pca.  eigenvectors_  ) 
template<typename PointT >
pcl::PCA< PointT >::eigenvectors_ (  ) 
template<typename PointT >
Eigen::MatrixXf& pcl::PCA< PointT >::getCoefficients (  )  [inline]

Coefficients accessor.

Exceptions:
InitFailedException 

Definition at line 186 of file pca.h.

References pcl::PCA< PointT >::coefficients_().

template<typename PointT >
Eigen::Vector3f& pcl::PCA< PointT >::getEigenValues (  )  [inline]

Eigen Values accessor.

Exceptions:
InitFailedException 

Definition at line 172 of file pca.h.

References pcl::PCA< PointT >::eigenvalues_().

template<typename PointT >
Eigen::Matrix3f& pcl::PCA< PointT >::getEigenVectors (  )  [inline]

Eigen Vectors accessor.

Exceptions:
InitFailedException 

Definition at line 158 of file pca.h.

References pcl::PCA< PointT >::eigenvectors_().

template<typename PointT >
Eigen::Vector4f& pcl::PCA< PointT >::getMean (  )  [inline]

Mean accessor.

Exceptions:
InitFailedException 

Definition at line 144 of file pca.h.

References pcl::PCA< PointT >::mean_().

template<typename PointT >
pcl::PCA< PointT >::mean_ ( pca.  mean_  ) 
template<typename PointT >
pcl::PCA< PointT >::mean_ (  ) 
template<typename PointT >
PCA& pcl::PCA< PointT >::operator= ( PCA< PointT > const &  pca  )  [inline]

Assignment operator.

Parameters:
[in] pca PCA object

Definition at line 121 of file pca.h.

References pcl::PCA< PointT >::coefficients_(), pcl::PCA< PointT >::eigenvalues_(), pcl::PCA< PointT >::eigenvectors_(), and pcl::PCA< PointT >::mean_().

template<typename PointT >
pcl::PCA< PointT >::PCL_DEPRECATED ( PCA< PointT >(const pcl::PointCloud< PointT > &X, bool basis_only=false)  ,
"Use PCA< PointT > (bool basis_only); setInputCloud (X.makeShared ()); instead"   
)

Constructor with direct computation X input m*n matrix (ie n vectors of R(m)) basis_only flag to compute only the PCA basis.

template<typename PointT >
void pcl::PCA< PointT >::project ( const PointCloud input,
PointCloud projection 
) [inline]

Project cloud on the eigenspace.

Parameters:
[in] input cloud from original dataset
[out] projection the cloud in eigen vectors space
Exceptions:
InitFailedException 

Definition at line 188 of file pca.hpp.

References pcl::PointCloud< PointT >::is_dense, pcl::PCA< PointT >::project(), pcl::PointCloud< PointT >::push_back(), pcl::PointCloud< PointT >::resize(), and pcl::PointCloud< PointT >::size().

template<typename PointT >
void pcl::PCA< PointT >::project ( const PointT input,
PointT projection 
) [inline]

Project point on the eigenspace.

Parameters:
[in] input point from original dataset
[out] projection the point in eigen vectors space
Exceptions:
InitFailedException 

Definition at line 175 of file pca.hpp.

References pcl::PCA< PointT >::eigenvectors_(), and pcl::PCA< PointT >::mean_().

Referenced by pcl::PCA< PointT >::project().

template<typename PointT >
void pcl::PCA< PointT >::reconstruct ( const PointCloud projection,
PointCloud input 
) [inline]

Reconstruct cloud from its projection.

Parameters:
[in] projection cloud from eigenvector space
[out] input reconstructed cloud
Exceptions:
InitFailedException 

Definition at line 230 of file pca.hpp.

References pcl::PointCloud< PointT >::is_dense, pcl::PointCloud< PointT >::push_back(), pcl::PCA< PointT >::reconstruct(), pcl::PointCloud< PointT >::resize(), and pcl::PointCloud< PointT >::size().

template<typename PointT >
void pcl::PCA< PointT >::reconstruct ( const PointT projection,
PointT input 
) [inline]

Reconstruct point from its projection.

Parameters:
[in] projection point from eigenvector space
[out] input reconstructed point
Exceptions:
InitFailedException 

Definition at line 217 of file pca.hpp.

References pcl::PCA< PointT >::eigenvectors_(), and pcl::PCA< PointT >::mean_().

Referenced by pcl::PCA< PointT >::reconstruct().

template<typename PointT >
void pcl::PCA< PointT >::setInputCloud ( const PointCloudConstPtr cloud  )  [inline]

Provide a pointer to the input dataset.

Parameters:
cloud the const boost shared pointer to a PointCloud message

Definition at line 134 of file pca.h.

References pcl::PCLBase< PointT >::setInputCloud().

template<typename PointT >
void pcl::PCA< PointT >::update ( const PointT input,
FLAG  flag = preserve 
) [inline]

update PCA with a new point

Parameters:
[in] input input point
[in] flag update flag
Exceptions:
InitFailedException 

Definition at line 105 of file pca.hpp.

References pcl::PCA< PointT >::coefficients_(), pcl::PCA< PointT >::eigenvalues_(), pcl::PCA< PointT >::eigenvectors_(), pcl::PCA< PointT >::increase, pcl::PCA< PointT >::mean_(), and pcl::PCA< PointT >::preserve.


Member Data Documentation

template<typename PointT >
pcl::PCA< PointT >::__pad0__

Default Constructor.

Parameters:
basis_only flag to compute only the PCA basis

Definition at line 89 of file pca.h.

template<typename PointT >
pcl::PCA< PointT >::__pad1__

Copy Constructor.

Parameters:
[in] pca PCA object

Definition at line 109 of file pca.h.


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