|
Point Cloud Library (PCL)
1.6.0
|
Principal Component analysis (PCA) class. More...
#include <pcl/common/pca.h>


Public Types | |
| enum | FLAG { increase, preserve } |
| Updating method flag. More... | |
| typedef pcl::PCLBase< PointT > | Base |
| typedef Base::PointCloud | PointCloud |
| typedef Base::PointCloudPtr | PointCloudPtr |
| typedef Base::PointCloudConstPtr | PointCloudConstPtr |
| typedef Base::PointIndicesPtr | PointIndicesPtr |
| typedef Base::PointIndicesConstPtr | PointIndicesConstPtr |
Public Member Functions | |
| PCA (bool basis_only=false) | |
| Default Constructor. | |
| 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. | |
| PCA (PCA const &pca) | |
| Copy Constructor. | |
| PCA & | operator= (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. | |
| PointCloudConstPtr const | getInputCloud () |
| Get a pointer to the input point cloud dataset. | |
| void | setIndices (const IndicesPtr &indices) |
| Provide a pointer to the vector of indices that represents the input data. | |
| void | setIndices (const IndicesConstPtr &indices) |
| Provide a pointer to the vector of indices that represents the input data. | |
| void | setIndices (const PointIndicesConstPtr &indices) |
| Provide a pointer to the vector of indices that represents the input data. | |
| void | setIndices (size_t row_start, size_t col_start, size_t nb_rows, size_t nb_cols) |
| Set the indices for the points laying within an interest region of the point cloud. | |
| IndicesPtr const | getIndices () |
| Get a pointer to the vector of indices used. | |
| const PointT & | operator[] (size_t pos) |
| Override PointCloud operator[] to shorten code. | |
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").
| typedef pcl::PCLBase<PointT> pcl::PCA< PointT >::Base |
| typedef Base::PointCloud pcl::PCA< PointT >::PointCloud |
Reimplemented from pcl::PCLBase< PointT >.
| typedef Base::PointCloudConstPtr pcl::PCA< PointT >::PointCloudConstPtr |
Reimplemented from pcl::PCLBase< PointT >.
| typedef Base::PointCloudPtr pcl::PCA< PointT >::PointCloudPtr |
Reimplemented from pcl::PCLBase< PointT >.
| typedef Base::PointIndicesConstPtr pcl::PCA< PointT >::PointIndicesConstPtr |
Reimplemented from pcl::PCLBase< PointT >.
| typedef Base::PointIndicesPtr pcl::PCA< PointT >::PointIndicesPtr |
Reimplemented from pcl::PCLBase< PointT >.
| enum pcl::PCA::FLAG |
| Eigen::MatrixXf& pcl::PCA< PointT >::getCoefficients | ( | ) | [inline] |
| Eigen::Vector3f& pcl::PCA< PointT >::getEigenValues | ( | ) | [inline] |
| Eigen::Matrix3f& pcl::PCA< PointT >::getEigenVectors | ( | ) | [inline] |
| IndicesPtr const pcl::PCLBase< PointT >::getIndices | ( | ) | [inline, inherited] |
Get a pointer to the vector of indices used.
Definition at line 190 of file pcl_base.h.
| PointCloudConstPtr const pcl::PCLBase< PointT >::getInputCloud | ( | ) | [inline, inherited] |
Get a pointer to the input point cloud dataset.
Definition at line 107 of file pcl_base.h.
| const PointT& pcl::PCLBase< PointT >::operator[] | ( | size_t | pos | ) | [inline, inherited] |
Override PointCloud operator[] to shorten code.
| pos | position in indices_ vector |
Definition at line 197 of file pcl_base.h.
| 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.
| void pcl::PCA< PointT >::project | ( | const PointT & | input, |
| PointT & | projection | ||
| ) | [inline] |
Project point on the eigenspace.
| [in] | input | point from original dataset |
| [out] | projection | the point in eigen vectors space |
| InitFailedException |
| void pcl::PCA< PointT >::project | ( | const PointCloud & | input, |
| PointCloud & | projection | ||
| ) | [inline] |
Project cloud on the eigenspace.
| [in] | input | cloud from original dataset |
| [out] | projection | the cloud in eigen vectors space |
| InitFailedException |
| void pcl::PCA< PointT >::reconstruct | ( | const PointT & | projection, |
| PointT & | input | ||
| ) | [inline] |
Reconstruct point from its projection.
| [in] | projection | point from eigenvector space |
| [out] | input | reconstructed point |
| InitFailedException |
| void pcl::PCA< PointT >::reconstruct | ( | const PointCloud & | projection, |
| PointCloud & | input | ||
| ) | [inline] |
Reconstruct cloud from its projection.
| [in] | projection | cloud from eigenvector space |
| [out] | input | reconstructed cloud |
| InitFailedException |
| void pcl::PCLBase< PointT >::setIndices | ( | const IndicesPtr & | indices | ) | [inline, inherited] |
Provide a pointer to the vector of indices that represents the input data.
| indices | a pointer to the vector of indices that represents the input data. |
Definition at line 113 of file pcl_base.h.
| void pcl::PCLBase< PointT >::setIndices | ( | const IndicesConstPtr & | indices | ) | [inline, inherited] |
Provide a pointer to the vector of indices that represents the input data.
| indices | a pointer to the vector of indices that represents the input data. |
Definition at line 124 of file pcl_base.h.
| void pcl::PCLBase< PointT >::setIndices | ( | const PointIndicesConstPtr & | indices | ) | [inline, inherited] |
Provide a pointer to the vector of indices that represents the input data.
| indices | a pointer to the vector of indices that represents the input data. |
Definition at line 135 of file pcl_base.h.
| void pcl::PCLBase< PointT >::setIndices | ( | size_t | row_start, |
| size_t | col_start, | ||
| size_t | nb_rows, | ||
| size_t | nb_cols | ||
| ) | [inline, inherited] |
Set the indices for the points laying within an interest region of the point cloud.
| row_start | the offset on rows |
| col_start | the offset on columns |
| nb_rows | the number of rows to be considered row_start included |
| nb_cols | the number of columns to be considered col_start included |
Definition at line 151 of file pcl_base.h.
| void pcl::PCA< PointT >::setInputCloud | ( | const PointCloudConstPtr & | cloud | ) | [inline, virtual] |
Provide a pointer to the input dataset.
| cloud | the const boost shared pointer to a PointCloud message |
Reimplemented from pcl::PCLBase< PointT >.
| void pcl::PCA< PointT >::update | ( | const PointT & | input, |
| FLAG | flag = preserve |
||
| ) | [inline] |
update PCA with a new point
| [in] | input | input point |
| [in] | flag | update flag |
| InitFailedException |
1.7.6.1