Point Cloud Library (PCL)  1.9.1-dev
Classes | Namespaces | Functions
centroid.h File Reference
#include <pcl/pcl_macros.h>
#include <pcl/point_cloud.h>
#include <pcl/point_traits.h>
#include <pcl/PointIndices.h>
#include <pcl/cloud_iterator.h>
#include <pcl/common/impl/accumulators.hpp>
#include <pcl/common/impl/centroid.hpp>

Go to the source code of this file.

Detailed Description

Define methods for centroid estimation and covariance matrix calculus.

Definition in file centroid.h.

Classes

struct  pcl::NdCentroidFunctor< PointT, Scalar >
 Helper functor structure for n-D centroid estimation. More...
 
class  pcl::CentroidPoint< PointT >
 A generic class that computes the centroid of points fed to it. More...
 

Namespaces

 pcl
 This file defines compatibility wrappers for low level I/O functions.
 

Functions

template<typename PointT , typename Scalar >
unsigned int pcl::compute3DCentroid (ConstCloudIterator< PointT > &cloud_iterator, Eigen::Matrix< Scalar, 4, 1 > &centroid)
 Compute the 3D (X-Y-Z) centroid of a set of points and return it as a 3D vector. More...
 
template<typename PointT >
unsigned int pcl::compute3DCentroid (ConstCloudIterator< PointT > &cloud_iterator, Eigen::Vector4f &centroid)
 
template<typename PointT >
unsigned int pcl::compute3DCentroid (ConstCloudIterator< PointT > &cloud_iterator, Eigen::Vector4d &centroid)
 
template<typename PointT , typename Scalar >
unsigned int pcl::compute3DCentroid (const pcl::PointCloud< PointT > &cloud, Eigen::Matrix< Scalar, 4, 1 > &centroid)
 Compute the 3D (X-Y-Z) centroid of a set of points and return it as a 3D vector. More...
 
template<typename PointT >
unsigned int pcl::compute3DCentroid (const pcl::PointCloud< PointT > &cloud, Eigen::Vector4f &centroid)
 
template<typename PointT >
unsigned int pcl::compute3DCentroid (const pcl::PointCloud< PointT > &cloud, Eigen::Vector4d &centroid)
 
template<typename PointT , typename Scalar >
unsigned int pcl::compute3DCentroid (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, Eigen::Matrix< Scalar, 4, 1 > &centroid)
 Compute the 3D (X-Y-Z) centroid of a set of points using their indices and return it as a 3D vector. More...
 
template<typename PointT >
unsigned int pcl::compute3DCentroid (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, Eigen::Vector4f &centroid)
 
template<typename PointT >
unsigned int pcl::compute3DCentroid (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, Eigen::Vector4d &centroid)
 
template<typename PointT , typename Scalar >
unsigned int pcl::compute3DCentroid (const pcl::PointCloud< PointT > &cloud, const pcl::PointIndices &indices, Eigen::Matrix< Scalar, 4, 1 > &centroid)
 Compute the 3D (X-Y-Z) centroid of a set of points using their indices and return it as a 3D vector. More...
 
template<typename PointT >
unsigned int pcl::compute3DCentroid (const pcl::PointCloud< PointT > &cloud, const pcl::PointIndices &indices, Eigen::Vector4f &centroid)
 
template<typename PointT >
unsigned int pcl::compute3DCentroid (const pcl::PointCloud< PointT > &cloud, const pcl::PointIndices &indices, Eigen::Vector4d &centroid)
 
template<typename PointT , typename Scalar >
unsigned int pcl::computeCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const Eigen::Matrix< Scalar, 4, 1 > &centroid, Eigen::Matrix< Scalar, 3, 3 > &covariance_matrix)
 Compute the 3x3 covariance matrix of a given set of points. More...
 
template<typename PointT >
unsigned int pcl::computeCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const Eigen::Vector4f &centroid, Eigen::Matrix3f &covariance_matrix)
 
template<typename PointT >
unsigned int pcl::computeCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const Eigen::Vector4d &centroid, Eigen::Matrix3d &covariance_matrix)
 
template<typename PointT , typename Scalar >
unsigned int pcl::computeCovarianceMatrixNormalized (const pcl::PointCloud< PointT > &cloud, const Eigen::Matrix< Scalar, 4, 1 > &centroid, Eigen::Matrix< Scalar, 3, 3 > &covariance_matrix)
 Compute normalized the 3x3 covariance matrix of a given set of points. More...
 
template<typename PointT >
unsigned int pcl::computeCovarianceMatrixNormalized (const pcl::PointCloud< PointT > &cloud, const Eigen::Vector4f &centroid, Eigen::Matrix3f &covariance_matrix)
 
template<typename PointT >
unsigned int pcl::computeCovarianceMatrixNormalized (const pcl::PointCloud< PointT > &cloud, const Eigen::Vector4d &centroid, Eigen::Matrix3d &covariance_matrix)
 
template<typename PointT , typename Scalar >
unsigned int pcl::computeCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, const Eigen::Matrix< Scalar, 4, 1 > &centroid, Eigen::Matrix< Scalar, 3, 3 > &covariance_matrix)
 Compute the 3x3 covariance matrix of a given set of points using their indices. More...
 
template<typename PointT >
unsigned int pcl::computeCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, const Eigen::Vector4f &centroid, Eigen::Matrix3f &covariance_matrix)
 
template<typename PointT >
unsigned int pcl::computeCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, const Eigen::Vector4d &centroid, Eigen::Matrix3d &covariance_matrix)
 
template<typename PointT , typename Scalar >
unsigned int pcl::computeCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const pcl::PointIndices &indices, const Eigen::Matrix< Scalar, 4, 1 > &centroid, Eigen::Matrix< Scalar, 3, 3 > &covariance_matrix)
 Compute the 3x3 covariance matrix of a given set of points using their indices. More...
 
template<typename PointT >
unsigned int pcl::computeCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const pcl::PointIndices &indices, const Eigen::Vector4f &centroid, Eigen::Matrix3f &covariance_matrix)
 
template<typename PointT >
unsigned int pcl::computeCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const pcl::PointIndices &indices, const Eigen::Vector4d &centroid, Eigen::Matrix3d &covariance_matrix)
 
template<typename PointT , typename Scalar >
unsigned int pcl::computeCovarianceMatrixNormalized (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, const Eigen::Matrix< Scalar, 4, 1 > &centroid, Eigen::Matrix< Scalar, 3, 3 > &covariance_matrix)
 Compute the normalized 3x3 covariance matrix of a given set of points using their indices. More...
 
template<typename PointT >
unsigned int pcl::computeCovarianceMatrixNormalized (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, const Eigen::Vector4f &centroid, Eigen::Matrix3f &covariance_matrix)
 
template<typename PointT >
unsigned int pcl::computeCovarianceMatrixNormalized (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, const Eigen::Vector4d &centroid, Eigen::Matrix3d &covariance_matrix)
 
template<typename PointT , typename Scalar >
unsigned int pcl::computeCovarianceMatrixNormalized (const pcl::PointCloud< PointT > &cloud, const pcl::PointIndices &indices, const Eigen::Matrix< Scalar, 4, 1 > &centroid, Eigen::Matrix< Scalar, 3, 3 > &covariance_matrix)
 Compute the normalized 3x3 covariance matrix of a given set of points using their indices. More...
 
template<typename PointT >
unsigned int pcl::computeCovarianceMatrixNormalized (const pcl::PointCloud< PointT > &cloud, const pcl::PointIndices &indices, const Eigen::Vector4f &centroid, Eigen::Matrix3f &covariance_matrix)
 
template<typename PointT >
unsigned int pcl::computeCovarianceMatrixNormalized (const pcl::PointCloud< PointT > &cloud, const pcl::PointIndices &indices, const Eigen::Vector4d &centroid, Eigen::Matrix3d &covariance_matrix)
 
template<typename PointT , typename Scalar >
unsigned int pcl::computeMeanAndCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, Eigen::Matrix< Scalar, 3, 3 > &covariance_matrix, Eigen::Matrix< Scalar, 4, 1 > &centroid)
 Compute the normalized 3x3 covariance matrix and the centroid of a given set of points in a single loop. More...
 
template<typename PointT >
unsigned int pcl::computeMeanAndCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, Eigen::Matrix3f &covariance_matrix, Eigen::Vector4f &centroid)
 
template<typename PointT >
unsigned int pcl::computeMeanAndCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, Eigen::Matrix3d &covariance_matrix, Eigen::Vector4d &centroid)
 
template<typename PointT , typename Scalar >
unsigned int pcl::computeMeanAndCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, Eigen::Matrix< Scalar, 3, 3 > &covariance_matrix, Eigen::Matrix< Scalar, 4, 1 > &centroid)
 Compute the normalized 3x3 covariance matrix and the centroid of a given set of points in a single loop. More...
 
template<typename PointT >
unsigned int pcl::computeMeanAndCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, Eigen::Matrix3f &covariance_matrix, Eigen::Vector4f &centroid)
 
template<typename PointT >
unsigned int pcl::computeMeanAndCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, Eigen::Matrix3d &covariance_matrix, Eigen::Vector4d &centroid)
 
template<typename PointT , typename Scalar >
unsigned int pcl::computeMeanAndCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const pcl::PointIndices &indices, Eigen::Matrix< Scalar, 3, 3 > &covariance_matrix, Eigen::Matrix< Scalar, 4, 1 > &centroid)
 Compute the normalized 3x3 covariance matrix and the centroid of a given set of points in a single loop. More...
 
template<typename PointT >
unsigned int pcl::computeMeanAndCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const pcl::PointIndices &indices, Eigen::Matrix3f &covariance_matrix, Eigen::Vector4f &centroid)
 
template<typename PointT >
unsigned int pcl::computeMeanAndCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const pcl::PointIndices &indices, Eigen::Matrix3d &covariance_matrix, Eigen::Vector4d &centroid)
 
template<typename PointT , typename Scalar >
unsigned int pcl::computeCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, Eigen::Matrix< Scalar, 3, 3 > &covariance_matrix)
 Compute the normalized 3x3 covariance matrix for a already demeaned point cloud. More...
 
template<typename PointT >
unsigned int pcl::computeCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, Eigen::Matrix3f &covariance_matrix)
 
template<typename PointT >
unsigned int pcl::computeCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, Eigen::Matrix3d &covariance_matrix)
 
template<typename PointT , typename Scalar >
unsigned int pcl::computeCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, Eigen::Matrix< Scalar, 3, 3 > &covariance_matrix)
 Compute the normalized 3x3 covariance matrix for a already demeaned point cloud. More...
 
template<typename PointT >
unsigned int pcl::computeCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, Eigen::Matrix3f &covariance_matrix)
 
template<typename PointT >
unsigned int pcl::computeCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, Eigen::Matrix3d &covariance_matrix)
 
template<typename PointT , typename Scalar >
unsigned int pcl::computeCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const pcl::PointIndices &indices, Eigen::Matrix< Scalar, 3, 3 > &covariance_matrix)
 Compute the normalized 3x3 covariance matrix for a already demeaned point cloud. More...
 
template<typename PointT >
unsigned int pcl::computeCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const pcl::PointIndices &indices, Eigen::Matrix3f &covariance_matrix)
 
template<typename PointT >
unsigned int pcl::computeCovarianceMatrix (const pcl::PointCloud< PointT > &cloud, const pcl::PointIndices &indices, Eigen::Matrix3d &covariance_matrix)
 
template<typename PointT , typename Scalar >
void pcl::demeanPointCloud (ConstCloudIterator< PointT > &cloud_iterator, const Eigen::Matrix< Scalar, 4, 1 > &centroid, pcl::PointCloud< PointT > &cloud_out, int npts=0)
 Subtract a centroid from a point cloud and return the de-meaned representation. More...
 
template<typename PointT >
void pcl::demeanPointCloud (ConstCloudIterator< PointT > &cloud_iterator, const Eigen::Vector4f &centroid, pcl::PointCloud< PointT > &cloud_out, int npts=0)
 
template<typename PointT >
void pcl::demeanPointCloud (ConstCloudIterator< PointT > &cloud_iterator, const Eigen::Vector4d &centroid, pcl::PointCloud< PointT > &cloud_out, int npts=0)
 
template<typename PointT , typename Scalar >
void pcl::demeanPointCloud (const pcl::PointCloud< PointT > &cloud_in, const Eigen::Matrix< Scalar, 4, 1 > &centroid, pcl::PointCloud< PointT > &cloud_out)
 Subtract a centroid from a point cloud and return the de-meaned representation. More...
 
template<typename PointT >
void pcl::demeanPointCloud (ConstCloudIterator< PointT > &cloud_iterator, const Eigen::Vector4f &centroid, pcl::PointCloud< PointT > &cloud_out)
 
template<typename PointT >
void pcl::demeanPointCloud (ConstCloudIterator< PointT > &cloud_iterator, const Eigen::Vector4d &centroid, pcl::PointCloud< PointT > &cloud_out)
 
template<typename PointT , typename Scalar >
void pcl::demeanPointCloud (const pcl::PointCloud< PointT > &cloud_in, const std::vector< int > &indices, const Eigen::Matrix< Scalar, 4, 1 > &centroid, pcl::PointCloud< PointT > &cloud_out)
 Subtract a centroid from a point cloud and return the de-meaned representation. More...
 
template<typename PointT >
void pcl::demeanPointCloud (const pcl::PointCloud< PointT > &cloud_in, const std::vector< int > &indices, const Eigen::Vector4f &centroid, pcl::PointCloud< PointT > &cloud_out)
 
template<typename PointT >
void pcl::demeanPointCloud (const pcl::PointCloud< PointT > &cloud_in, const std::vector< int > &indices, const Eigen::Vector4d &centroid, pcl::PointCloud< PointT > &cloud_out)
 
template<typename PointT , typename Scalar >
void pcl::demeanPointCloud (const pcl::PointCloud< PointT > &cloud_in, const pcl::PointIndices &indices, const Eigen::Matrix< Scalar, 4, 1 > &centroid, pcl::PointCloud< PointT > &cloud_out)
 Subtract a centroid from a point cloud and return the de-meaned representation. More...
 
template<typename PointT >
void pcl::demeanPointCloud (const pcl::PointCloud< PointT > &cloud_in, const pcl::PointIndices &indices, const Eigen::Vector4f &centroid, pcl::PointCloud< PointT > &cloud_out)
 
template<typename PointT >
void pcl::demeanPointCloud (const pcl::PointCloud< PointT > &cloud_in, const pcl::PointIndices &indices, const Eigen::Vector4d &centroid, pcl::PointCloud< PointT > &cloud_out)
 
template<typename PointT , typename Scalar >
void pcl::demeanPointCloud (ConstCloudIterator< PointT > &cloud_iterator, const Eigen::Matrix< Scalar, 4, 1 > &centroid, Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > &cloud_out, int npts=0)
 Subtract a centroid from a point cloud and return the de-meaned representation as an Eigen matrix. More...
 
template<typename PointT >
void pcl::demeanPointCloud (ConstCloudIterator< PointT > &cloud_iterator, const Eigen::Vector4f &centroid, Eigen::MatrixXf &cloud_out, int npts=0)
 
template<typename PointT >
void pcl::demeanPointCloud (ConstCloudIterator< PointT > &cloud_iterator, const Eigen::Vector4d &centroid, Eigen::MatrixXd &cloud_out, int npts=0)
 
template<typename PointT , typename Scalar >
void pcl::demeanPointCloud (const pcl::PointCloud< PointT > &cloud_in, const Eigen::Matrix< Scalar, 4, 1 > &centroid, Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > &cloud_out)
 Subtract a centroid from a point cloud and return the de-meaned representation as an Eigen matrix. More...
 
template<typename PointT >
void pcl::demeanPointCloud (const pcl::PointCloud< PointT > &cloud_in, const Eigen::Vector4f &centroid, Eigen::MatrixXf &cloud_out)
 
template<typename PointT >
void pcl::demeanPointCloud (const pcl::PointCloud< PointT > &cloud_in, const Eigen::Vector4d &centroid, Eigen::MatrixXd &cloud_out)
 
template<typename PointT , typename Scalar >
void pcl::demeanPointCloud (const pcl::PointCloud< PointT > &cloud_in, const std::vector< int > &indices, const Eigen::Matrix< Scalar, 4, 1 > &centroid, Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > &cloud_out)
 Subtract a centroid from a point cloud and return the de-meaned representation as an Eigen matrix. More...
 
template<typename PointT >
void pcl::demeanPointCloud (const pcl::PointCloud< PointT > &cloud_in, const std::vector< int > &indices, const Eigen::Vector4f &centroid, Eigen::MatrixXf &cloud_out)
 
template<typename PointT >
void pcl::demeanPointCloud (const pcl::PointCloud< PointT > &cloud_in, const std::vector< int > &indices, const Eigen::Vector4d &centroid, Eigen::MatrixXd &cloud_out)
 
template<typename PointT , typename Scalar >
void pcl::demeanPointCloud (const pcl::PointCloud< PointT > &cloud_in, const pcl::PointIndices &indices, const Eigen::Matrix< Scalar, 4, 1 > &centroid, Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic > &cloud_out)
 Subtract a centroid from a point cloud and return the de-meaned representation as an Eigen matrix. More...
 
template<typename PointT >
void pcl::demeanPointCloud (const pcl::PointCloud< PointT > &cloud_in, const pcl::PointIndices &indices, const Eigen::Vector4f &centroid, Eigen::MatrixXf &cloud_out)
 
template<typename PointT >
void pcl::demeanPointCloud (const pcl::PointCloud< PointT > &cloud_in, const pcl::PointIndices &indices, const Eigen::Vector4d &centroid, Eigen::MatrixXd &cloud_out)
 
template<typename PointT , typename Scalar >
void pcl::computeNDCentroid (const pcl::PointCloud< PointT > &cloud, Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > &centroid)
 General, all purpose nD centroid estimation for a set of points using their indices. More...
 
template<typename PointT >
void pcl::computeNDCentroid (const pcl::PointCloud< PointT > &cloud, Eigen::VectorXf &centroid)
 
template<typename PointT >
void pcl::computeNDCentroid (const pcl::PointCloud< PointT > &cloud, Eigen::VectorXd &centroid)
 
template<typename PointT , typename Scalar >
void pcl::computeNDCentroid (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > &centroid)
 General, all purpose nD centroid estimation for a set of points using their indices. More...
 
template<typename PointT >
void pcl::computeNDCentroid (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, Eigen::VectorXf &centroid)
 
template<typename PointT >
void pcl::computeNDCentroid (const pcl::PointCloud< PointT > &cloud, const std::vector< int > &indices, Eigen::VectorXd &centroid)
 
template<typename PointT , typename Scalar >
void pcl::computeNDCentroid (const pcl::PointCloud< PointT > &cloud, const pcl::PointIndices &indices, Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > &centroid)
 General, all purpose nD centroid estimation for a set of points using their indices. More...
 
template<typename PointT >
void pcl::computeNDCentroid (const pcl::PointCloud< PointT > &cloud, const pcl::PointIndices &indices, Eigen::VectorXf &centroid)
 
template<typename PointT >
void pcl::computeNDCentroid (const pcl::PointCloud< PointT > &cloud, const pcl::PointIndices &indices, Eigen::VectorXd &centroid)
 
template<typename PointInT , typename PointOutT >
std::size_t pcl::computeCentroid (const pcl::PointCloud< PointInT > &cloud, PointOutT &centroid)
 Compute the centroid of a set of points and return it as a point. More...
 
template<typename PointInT , typename PointOutT >
std::size_t pcl::computeCentroid (const pcl::PointCloud< PointInT > &cloud, const std::vector< int > &indices, PointOutT &centroid)
 Compute the centroid of a set of points and return it as a point. More...