Point Cloud Library (PCL)  1.7.0
List of all members | Public Member Functions | Protected Attributes
pcl::VectorAverage< real, dimension > Class Template Reference

Calculates the weighted average and the covariance matrix. More...

#include <pcl/common/vector_average.h>

Public Member Functions

 VectorAverage ()
 Constructor - dimension gives the size of the vectors to work with. More...
 
 ~VectorAverage ()
 Destructor. More...
 
void reset ()
 Reset the object to work with a new data set. More...
 
const Eigen::Matrix< real,
dimension, 1 > & 
getMean () const
 Get the mean of the added vectors. More...
 
const Eigen::Matrix< real,
dimension, dimension > & 
getCovariance () const
 Get the covariance matrix of the added vectors. More...
 
real getAccumulatedWeight () const
 Get the summed up weight of all added vectors. More...
 
unsigned int getNoOfSamples ()
 Get the number of added vectors. More...
 
void add (const Eigen::Matrix< real, dimension, 1 > &sample, real weight=1.0)
 Add a new sample. More...
 
void doPCA (Eigen::Matrix< real, dimension, 1 > &eigen_values, Eigen::Matrix< real, dimension, 1 > &eigen_vector1, Eigen::Matrix< real, dimension, 1 > &eigen_vector2, Eigen::Matrix< real, dimension, 1 > &eigen_vector3) const
 Do Principal component analysis. More...
 
void doPCA (Eigen::Matrix< real, dimension, 1 > &eigen_values) const
 Do Principal component analysis. More...
 
void getEigenVector1 (Eigen::Matrix< real, dimension, 1 > &eigen_vector1) const
 Get the eigenvector corresponding to the smallest eigenvalue. More...
 
template<>
void doPCA (Eigen::Matrix< float, 3, 1 > &eigen_values, Eigen::Matrix< float, 3, 1 > &eigen_vector1, Eigen::Matrix< float, 3, 1 > &eigen_vector2, Eigen::Matrix< float, 3, 1 > &eigen_vector3) const
 
template<>
void doPCA (Eigen::Matrix< float, 3, 1 > &eigen_values) const
 
template<>
void getEigenVector1 (Eigen::Matrix< float, 3, 1 > &eigen_vector1) const
 
template<>
void doPCA (Eigen::Matrix< double, 3, 1 > &eigen_values, Eigen::Matrix< double, 3, 1 > &eigen_vector1, Eigen::Matrix< double, 3, 1 > &eigen_vector2, Eigen::Matrix< double, 3, 1 > &eigen_vector3) const
 
template<>
void doPCA (Eigen::Matrix< double, 3, 1 > &eigen_values) const
 
template<>
void getEigenVector1 (Eigen::Matrix< double, 3, 1 > &eigen_vector1) const
 

Protected Attributes

unsigned int noOfSamples_
 
real accumulatedWeight_
 
Eigen::Matrix< real, dimension, 1 > mean_
 
Eigen::Matrix< real, dimension,
dimension > 
covariance_
 

Detailed Description

template<typename real, int dimension>
class pcl::VectorAverage< real, dimension >

Calculates the weighted average and the covariance matrix.

A class to calculate the weighted average and the covariance matrix of a set of vectors with given weights. The original data is not saved. Mean and covariance are calculated iteratively.

Author
Bastian Steder

Definition at line 53 of file vector_average.h.

Constructor & Destructor Documentation

template<typename real , int dimension>
pcl::VectorAverage< real, dimension >::VectorAverage ( )

Constructor - dimension gives the size of the vectors to work with.

Definition at line 44 of file vector_average.hpp.

References pcl::VectorAverage< real, dimension >::reset().

template<typename real , int dimension>
pcl::VectorAverage< real, dimension >::~VectorAverage ( )
inline

Destructor.

Definition at line 60 of file vector_average.h.

Member Function Documentation

template<typename real , int dimension>
void pcl::VectorAverage< real, dimension >::add ( const Eigen::Matrix< real, dimension, 1 > &  sample,
real  weight = 1.0 
)
inline
template<typename real , int dimension>
void pcl::VectorAverage< real, dimension >::doPCA ( Eigen::Matrix< real, dimension, 1 > &  eigen_values,
Eigen::Matrix< real, dimension, 1 > &  eigen_vector1,
Eigen::Matrix< real, dimension, 1 > &  eigen_vector2,
Eigen::Matrix< real, dimension, 1 > &  eigen_vector3 
) const
inline
template<typename real , int dimension>
void pcl::VectorAverage< real, dimension >::doPCA ( Eigen::Matrix< real, dimension, 1 > &  eigen_values) const
inline

Do Principal component analysis.

Definition at line 107 of file vector_average.hpp.

template<>
void pcl::VectorAverage< float, 3 >::doPCA ( Eigen::Matrix< float, 3, 1 > &  eigen_values,
Eigen::Matrix< float, 3, 1 > &  eigen_vector1,
Eigen::Matrix< float, 3, 1 > &  eigen_vector2,
Eigen::Matrix< float, 3, 1 > &  eigen_vector3 
) const
inline

Definition at line 146 of file vector_average.hpp.

References pcl::eigen33().

template<>
void pcl::VectorAverage< float, 3 >::doPCA ( Eigen::Matrix< float, 3, 1 > &  eigen_values) const
inline

Definition at line 157 of file vector_average.hpp.

References pcl::computeRoots().

template<>
void pcl::VectorAverage< double, 3 >::doPCA ( Eigen::Matrix< double, 3, 1 > &  eigen_values,
Eigen::Matrix< double, 3, 1 > &  eigen_vector1,
Eigen::Matrix< double, 3, 1 > &  eigen_vector2,
Eigen::Matrix< double, 3, 1 > &  eigen_vector3 
) const
inline

Definition at line 176 of file vector_average.hpp.

References pcl::eigen33().

template<>
void pcl::VectorAverage< double, 3 >::doPCA ( Eigen::Matrix< double, 3, 1 > &  eigen_values) const
inline

Definition at line 187 of file vector_average.hpp.

References pcl::computeRoots().

template<typename real , int dimension>
real pcl::VectorAverage< real, dimension >::getAccumulatedWeight ( ) const
inline

Get the summed up weight of all added vectors.

Definition at line 77 of file vector_average.h.

References pcl::VectorAverage< real, dimension >::accumulatedWeight_.

template<typename real , int dimension>
const Eigen::Matrix<real, dimension, dimension>& pcl::VectorAverage< real, dimension >::getCovariance ( ) const
inline

Get the covariance matrix of the added vectors.

Definition at line 73 of file vector_average.h.

References pcl::VectorAverage< real, dimension >::covariance_.

template<typename real , int dimension>
void pcl::VectorAverage< real, dimension >::getEigenVector1 ( Eigen::Matrix< real, dimension, 1 > &  eigen_vector1) const
inline

Get the eigenvector corresponding to the smallest eigenvalue.

Definition at line 120 of file vector_average.hpp.

Referenced by pcl::GridProjection< PointNT >::getVectorAtPointKNN().

template<>
void pcl::VectorAverage< float, 3 >::getEigenVector1 ( Eigen::Matrix< float, 3, 1 > &  eigen_vector1) const
inline

Definition at line 163 of file vector_average.hpp.

References pcl::eigen33().

template<>
void pcl::VectorAverage< double, 3 >::getEigenVector1 ( Eigen::Matrix< double, 3, 1 > &  eigen_vector1) const
inline

Definition at line 193 of file vector_average.hpp.

References pcl::eigen33().

template<typename real , int dimension>
const Eigen::Matrix<real, dimension, 1>& pcl::VectorAverage< real, dimension >::getMean ( ) const
inline
template<typename real , int dimension>
unsigned int pcl::VectorAverage< real, dimension >::getNoOfSamples ( )
inline
template<typename real , int dimension>
void pcl::VectorAverage< real, dimension >::reset ( )
inline

Reset the object to work with a new data set.

Definition at line 53 of file vector_average.hpp.

Referenced by pcl::VectorAverage< real, dimension >::VectorAverage().

Member Data Documentation

template<typename real , int dimension>
real pcl::VectorAverage< real, dimension >::accumulatedWeight_
protected
template<typename real , int dimension>
Eigen::Matrix<real, dimension, dimension> pcl::VectorAverage< real, dimension >::covariance_
protected
template<typename real , int dimension>
Eigen::Matrix<real, dimension, 1> pcl::VectorAverage< real, dimension >::mean_
protected

Definition at line 107 of file vector_average.h.

Referenced by pcl::VectorAverage< real, dimension >::getMean().

template<typename real , int dimension>
unsigned int pcl::VectorAverage< real, dimension >::noOfSamples_
protected

The documentation for this class was generated from the following files: