Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 #ifndef PCL_COMMON_VECTOR_AVERAGE_H
00039 #define PCL_COMMON_VECTOR_AVERAGE_H
00040
00041 #include <pcl/common/eigen.h>
00042
00043 namespace pcl
00044 {
00052 template <typename real, int dimension>
00053 class VectorAverage
00054 {
00055 public:
00056
00058 VectorAverage ();
00060 ~VectorAverage () {}
00061
00062
00064 inline void
00065 reset ();
00066
00068 inline const
00069 Eigen::Matrix<real, dimension, 1>& getMean () const { return mean_;}
00070
00072 inline const
00073 Eigen::Matrix<real, dimension, dimension>& getCovariance () const { return covariance_;}
00074
00076 inline real
00077 getAccumulatedWeight () const { return accumulatedWeight_;}
00078
00080 inline unsigned int
00081 getNoOfSamples () { return noOfSamples_;}
00082
00084 inline void
00085 add (const Eigen::Matrix<real, dimension, 1>& sample, real weight=1.0);
00086
00088 inline void
00089 doPCA (Eigen::Matrix<real, dimension, 1>& eigen_values, Eigen::Matrix<real, dimension, 1>& eigen_vector1,
00090 Eigen::Matrix<real, dimension, 1>& eigen_vector2, Eigen::Matrix<real, dimension, 1>& eigen_vector3) const;
00091
00093 inline void
00094 doPCA (Eigen::Matrix<real, dimension, 1>& eigen_values) const;
00095
00097 inline void
00098 getEigenVector1 (Eigen::Matrix<real, dimension, 1>& eigen_vector1) const;
00099
00100
00101
00102 protected:
00103
00104
00105 unsigned int noOfSamples_;
00106 real accumulatedWeight_;
00107 Eigen::Matrix<real, dimension, 1> mean_;
00108 Eigen::Matrix<real, dimension, dimension> covariance_;
00109 };
00110
00111 typedef VectorAverage<float, 2> VectorAverage2f;
00112 typedef VectorAverage<float, 3> VectorAverage3f;
00113 typedef VectorAverage<float, 4> VectorAverage4f;
00114 }
00115
00116 #include <pcl/common/impl/vector_average.hpp>
00117
00118 #endif // #ifndef PCL_VECTOR_AVERAGE_H
00119