43#include <pcl/point_cloud.h>
44#include <pcl/type_traits.h>
45#include <pcl/PointIndices.h>
46#include <pcl/cloud_iterator.h>
65 template <
typename Po
intT,
typename Scalar>
inline unsigned int
67 Eigen::Matrix<Scalar, 4, 1> ¢roid);
69 template <
typename Po
intT>
inline unsigned int
71 Eigen::Vector4f ¢roid)
76 template <
typename Po
intT>
inline unsigned int
78 Eigen::Vector4d ¢roid)
91 template <
typename Po
intT,
typename Scalar>
inline unsigned int
93 Eigen::Matrix<Scalar, 4, 1> ¢roid);
95 template <
typename Po
intT>
inline unsigned int
97 Eigen::Vector4f ¢roid)
102 template <
typename Po
intT>
inline unsigned int
104 Eigen::Vector4d ¢roid)
119 template <
typename Po
intT,
typename Scalar>
inline unsigned int
122 Eigen::Matrix<Scalar, 4, 1> ¢roid);
124 template <
typename Po
intT>
inline unsigned int
127 Eigen::Vector4f ¢roid)
132 template <
typename Po
intT>
inline unsigned int
135 Eigen::Vector4d ¢roid)
150 template <
typename Po
intT,
typename Scalar>
inline unsigned int
153 Eigen::Matrix<Scalar, 4, 1> ¢roid);
155 template <
typename Po
intT>
inline unsigned int
158 Eigen::Vector4f ¢roid)
163 template <
typename Po
intT>
inline unsigned int
166 Eigen::Vector4d ¢roid)
184 template <
typename Po
intT,
typename Scalar>
inline unsigned int
186 const Eigen::Matrix<Scalar, 4, 1> ¢roid,
187 Eigen::Matrix<Scalar, 3, 3> &covariance_matrix);
189 template <
typename Po
intT>
inline unsigned int
191 const Eigen::Vector4f ¢roid,
197 template <
typename Po
intT>
inline unsigned int
199 const Eigen::Vector4d ¢roid,
218 template <
typename Po
intT,
typename Scalar>
inline unsigned int
220 const Eigen::Matrix<Scalar, 4, 1> ¢roid,
221 Eigen::Matrix<Scalar, 3, 3> &covariance_matrix);
223 template <
typename Po
intT>
inline unsigned int
225 const Eigen::Vector4f ¢roid,
231 template <
typename Po
intT>
inline unsigned int
233 const Eigen::Vector4d ¢roid,
252 template <
typename Po
intT,
typename Scalar>
inline unsigned int
255 const Eigen::Matrix<Scalar, 4, 1> ¢roid,
256 Eigen::Matrix<Scalar, 3, 3> &covariance_matrix);
258 template <
typename Po
intT>
inline unsigned int
261 const Eigen::Vector4f ¢roid,
267 template <
typename Po
intT>
inline unsigned int
270 const Eigen::Vector4d ¢roid,
289 template <
typename Po
intT,
typename Scalar>
inline unsigned int
292 const Eigen::Matrix<Scalar, 4, 1> ¢roid,
293 Eigen::Matrix<Scalar, 3, 3> &covariance_matrix);
295 template <
typename Po
intT>
inline unsigned int
298 const Eigen::Vector4f ¢roid,
304 template <
typename Po
intT>
inline unsigned int
307 const Eigen::Vector4d ¢roid,
328 template <
typename Po
intT,
typename Scalar>
inline unsigned int
331 const Eigen::Matrix<Scalar, 4, 1> ¢roid,
332 Eigen::Matrix<Scalar, 3, 3> &covariance_matrix);
334 template <
typename Po
intT>
inline unsigned int
337 const Eigen::Vector4f ¢roid,
343 template <
typename Po
intT>
inline unsigned int
346 const Eigen::Vector4d ¢roid,
366 template <
typename Po
intT,
typename Scalar>
inline unsigned int
369 const Eigen::Matrix<Scalar, 4, 1> ¢roid,
370 Eigen::Matrix<Scalar, 3, 3> &covariance_matrix);
372 template <
typename Po
intT>
inline unsigned int
375 const Eigen::Vector4f ¢roid,
381 template <
typename Po
intT>
inline unsigned int
384 const Eigen::Vector4d ¢roid,
402 template <
typename Po
intT,
typename Scalar>
inline unsigned int
404 Eigen::Matrix<Scalar, 3, 3> &covariance_matrix,
405 Eigen::Matrix<Scalar, 4, 1> ¢roid);
407 template <
typename Po
intT>
inline unsigned int
410 Eigen::Vector4f ¢roid)
415 template <
typename Po
intT>
inline unsigned int
418 Eigen::Vector4d ¢roid)
436 template <
typename Po
intT,
typename Scalar>
inline unsigned int
439 Eigen::Matrix<Scalar, 3, 3> &covariance_matrix,
440 Eigen::Matrix<Scalar, 4, 1> ¢roid);
442 template <
typename Po
intT>
inline unsigned int
446 Eigen::Vector4f ¢roid)
451 template <
typename Po
intT>
inline unsigned int
455 Eigen::Vector4d ¢roid)
473 template <
typename Po
intT,
typename Scalar>
inline unsigned int
476 Eigen::Matrix<Scalar, 3, 3> &covariance_matrix,
477 Eigen::Matrix<Scalar, 4, 1> ¢roid);
479 template <
typename Po
intT>
inline unsigned int
483 Eigen::Vector4f ¢roid)
488 template <
typename Po
intT>
inline unsigned int
492 Eigen::Vector4d ¢roid)
508 template <
typename Po
intT,
typename Scalar>
inline unsigned int
510 Eigen::Matrix<Scalar, 3, 3> &covariance_matrix);
512 template <
typename Po
intT>
inline unsigned int
519 template <
typename Po
intT>
inline unsigned int
538 template <
typename Po
intT,
typename Scalar>
inline unsigned int
541 Eigen::Matrix<Scalar, 3, 3> &covariance_matrix);
543 template <
typename Po
intT>
inline unsigned int
551 template <
typename Po
intT>
inline unsigned int
571 template <
typename Po
intT,
typename Scalar>
inline unsigned int
574 Eigen::Matrix<Scalar, 3, 3> &covariance_matrix);
576 template <
typename Po
intT>
inline unsigned int
584 template <
typename Po
intT>
inline unsigned int
599 template <
typename Po
intT,
typename Scalar>
void
601 const Eigen::Matrix<Scalar, 4, 1> ¢roid,
605 template <
typename Po
intT>
void
607 const Eigen::Vector4f ¢roid,
614 template <
typename Po
intT>
void
616 const Eigen::Vector4d ¢roid,
629 template <
typename Po
intT,
typename Scalar>
void
631 const Eigen::Matrix<Scalar, 4, 1> ¢roid,
634 template <
typename Po
intT>
void
636 const Eigen::Vector4f ¢roid,
642 template <
typename Po
intT>
void
644 const Eigen::Vector4d ¢roid,
657 template <
typename Po
intT,
typename Scalar>
void
660 const Eigen::Matrix<Scalar, 4, 1> ¢roid,
663 template <
typename Po
intT>
void
666 const Eigen::Vector4f ¢roid,
672 template <
typename Po
intT>
void
675 const Eigen::Vector4d ¢roid,
688 template <
typename Po
intT,
typename Scalar>
void
691 const Eigen::Matrix<Scalar, 4, 1> ¢roid,
694 template <
typename Po
intT>
void
697 const Eigen::Vector4f ¢roid,
703 template <
typename Po
intT>
void
706 const Eigen::Vector4d ¢roid,
721 template <
typename Po
intT,
typename Scalar>
void
723 const Eigen::Matrix<Scalar, 4, 1> ¢roid,
724 Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic> &cloud_out,
727 template <
typename Po
intT>
void
729 const Eigen::Vector4f ¢roid,
736 template <
typename Po
intT>
void
738 const Eigen::Vector4d ¢roid,
753 template <
typename Po
intT,
typename Scalar>
void
755 const Eigen::Matrix<Scalar, 4, 1> ¢roid,
756 Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic> &cloud_out);
758 template <
typename Po
intT>
void
760 const Eigen::Vector4f ¢roid,
766 template <
typename Po
intT>
void
768 const Eigen::Vector4d ¢roid,
783 template <
typename Po
intT,
typename Scalar>
void
786 const Eigen::Matrix<Scalar, 4, 1> ¢roid,
787 Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic> &cloud_out);
789 template <
typename Po
intT>
void
792 const Eigen::Vector4f ¢roid,
798 template <
typename Po
intT>
void
801 const Eigen::Vector4d ¢roid,
816 template <
typename Po
intT,
typename Scalar>
void
819 const Eigen::Matrix<Scalar, 4, 1> ¢roid,
820 Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic> &cloud_out);
822 template <
typename Po
intT>
void
825 const Eigen::Vector4f ¢roid,
831 template <
typename Po
intT>
void
834 const Eigen::Vector4d ¢roid,
841 template<
typename Po
intT,
typename Scalar>
844 using Pod =
typename traits::POD<PointT>::type;
848 centroid_ (centroid),
853 using T =
typename pcl::traits::datatype<PointT, Key>::type;
854 const std::uint8_t*
raw_ptr =
reinterpret_cast<const std::uint8_t*
>(&p_) + pcl::traits::offset<PointT, Key>::value;
869 Eigen::Matrix<Scalar, Eigen::Dynamic, 1> ¢roid_;
879 template <
typename Po
intT,
typename Scalar>
inline void
881 Eigen::Matrix<Scalar, Eigen::Dynamic, 1> ¢roid);
883 template <
typename Po
intT>
inline void
885 Eigen::VectorXf ¢roid)
890 template <
typename Po
intT>
inline void
892 Eigen::VectorXd ¢roid)
904 template <
typename Po
intT,
typename Scalar>
inline void
907 Eigen::Matrix<Scalar, Eigen::Dynamic, 1> ¢roid);
909 template <
typename Po
intT>
inline void
912 Eigen::VectorXf ¢roid)
917 template <
typename Po
intT>
inline void
920 Eigen::VectorXd ¢roid)
932 template <
typename Po
intT,
typename Scalar>
inline void
935 Eigen::Matrix<Scalar, Eigen::Dynamic, 1> ¢roid);
937 template <
typename Po
intT>
inline void
940 Eigen::VectorXf ¢roid)
945 template <
typename Po
intT>
inline void
948 Eigen::VectorXd ¢roid)
955#include <pcl/common/impl/accumulators.hpp>
1021 template <
typename Po
intT>
1045 template <
typename Po
intOutT>
void
1052 return (num_points_);
1059 std::size_t num_points_ = 0;
1080 template <
typename Po
intInT,
typename Po
intOutT> std::size_t
1082 PointOutT& centroid);
1092 template <
typename Po
intInT,
typename Po
intOutT> std::size_t
1095 PointOutT& centroid);
1099#include <pcl/common/impl/centroid.hpp>
A generic class that computes the centroid of points fed to it.
std::size_t getSize() const
Get the total number of points that were added.
void get(PointOutT &point) const
Retrieve the current centroid.
void add(const PointT &point)
Add a new point to the centroid computation.
Iterator class for point clouds with or without given indices.
std::size_t computeCentroid(const pcl::PointCloud< PointInT > &cloud, PointOutT ¢roid)
Compute the centroid of a set of points and return it as a point.
#define PCL_MAKE_ALIGNED_OPERATOR_NEW
Macro to signal a class requires a custom allocator.
void computeNDCentroid(const pcl::PointCloud< PointT > &cloud, Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > ¢roid)
General, all purpose nD centroid estimation for a set of points using their indices.
unsigned int computeMeanAndCovarianceMatrix(const pcl::PointCloud< PointT > &cloud, Eigen::Matrix< Scalar, 3, 3 > &covariance_matrix, Eigen::Matrix< Scalar, 4, 1 > ¢roid)
Compute the normalized 3x3 covariance matrix and the centroid of a given set of points in a single lo...
void demeanPointCloud(ConstCloudIterator< PointT > &cloud_iterator, const Eigen::Matrix< Scalar, 4, 1 > ¢roid, pcl::PointCloud< PointT > &cloud_out, int npts=0)
Subtract a centroid from a point cloud and return the de-meaned representation.
unsigned int computeCovarianceMatrixNormalized(const pcl::PointCloud< PointT > &cloud, const Eigen::Matrix< Scalar, 4, 1 > ¢roid, Eigen::Matrix< Scalar, 3, 3 > &covariance_matrix)
Compute normalized the 3x3 covariance matrix of a given set of points.
unsigned int computeCovarianceMatrix(const pcl::PointCloud< PointT > &cloud, const Eigen::Matrix< Scalar, 4, 1 > ¢roid, Eigen::Matrix< Scalar, 3, 3 > &covariance_matrix)
Compute the 3x3 covariance matrix of a given set of points.
unsigned int compute3DCentroid(ConstCloudIterator< PointT > &cloud_iterator, Eigen::Matrix< Scalar, 4, 1 > ¢roid)
Compute the 3D (X-Y-Z) centroid of a set of points and return it as a 3D vector.
Defines functions, macros and traits for allocating and using memory.
IndicesAllocator<> Indices
Type used for indices in PCL.
Defines all the PCL and non-PCL macros used.
Helper functor structure for n-D centroid estimation.
NdCentroidFunctor(const PointT &p, Eigen::Matrix< Scalar, Eigen::Dynamic, 1 > ¢roid)
typename traits::POD< PointT >::type Pod
A point structure representing Euclidean xyz coordinates, and the RGB color.
typename boost::fusion::result_of::as_vector< typename boost::mpl::filter_view< boost::mpl::vector< AccumulatorXYZ, AccumulatorNormal, AccumulatorCurvature, AccumulatorRGBA, AccumulatorIntensity, AccumulatorLabel >, IsAccumulatorCompatible< PointT > > >::type type