pcl::people::HeadBasedSubclustering< PointT > Class Template Reference

#include <pcl/people/head_based_subcluster.h>

List of all members.

Public Types

typedef pcl::PointCloud< PointTPointCloud
typedef boost::shared_ptr
< PointCloud
PointCloudPtr
typedef boost::shared_ptr
< const PointCloud
PointCloudConstPtr

Public Member Functions

 HeadBasedSubclustering ()
 Constructor.
virtual ~HeadBasedSubclustering ()
 Destructor.
void subcluster (std::vector< pcl::people::PersonCluster< PointT > > &clusters)
 Compute subclusters and return them into a vector of PersonCluster.
void mergeClustersCloseInFloorCoordinates (std::vector< pcl::people::PersonCluster< PointT > > &input_clusters, std::vector< pcl::people::PersonCluster< PointT > > &output_clusters)
 Merge clusters close in floor coordinates.
void createSubClusters (pcl::people::PersonCluster< PointT > &cluster, int maxima_number_after_filtering, std::vector< int > &maxima_cloud_indices_filtered, std::vector< pcl::people::PersonCluster< PointT > > &subclusters)
 Create subclusters centered on the heads position from the current cluster.
void setInputCloud (PointCloudPtr &cloud)
 Set input cloud.
void setGround (Eigen::VectorXf &ground_coeffs)
 Set the ground coefficients.
void setSensorPortraitOrientation (bool vertical)
 Set sensor orientation to landscape mode (false) or portrait mode (true).
void setHeadCentroid (bool head_centroid)
 Set head_centroid_ to true (person centroid is in the head) or false (person centroid is the whole body centroid).
void setInitialClusters (std::vector< pcl::PointIndices > &cluster_indices)
 Set initial cluster indices.
void setHeightLimits (float min_height, float max_height)
 Set minimum and maximum allowed height for a person cluster.
void setDimensionLimits (int min_points, int max_points)
 Set minimum and maximum allowed number of points for a person cluster.
void setMinimumDistanceBetweenHeads (float heads_minimum_distance)
 Set minimum distance between persons' heads.
void getHeightLimits (float &min_height, float &max_height)
 Get minimum and maximum allowed height for a person cluster.
void getDimensionLimits (int &min_points, int &max_points)
 Get minimum and maximum allowed number of points for a person cluster.
float getMinimumDistanceBetweenHeads ()
 Get minimum distance between persons' heads.

Protected Attributes

Eigen::VectorXf ground_coeffs_
 ground plane coefficients
float sqrt_ground_coeffs_
 ground plane normalization factor
std::vector< pcl::PointIndicescluster_indices_
 initial clusters indices
PointCloudPtr cloud_
 pointer to the input cloud
float max_height_
 person clusters maximum height from the ground plane
float min_height_
 person clusters minimum height from the ground plane
bool vertical_
 if true, the sensor is considered to be vertically placed (portrait mode)
bool head_centroid_
 if true, the person centroid is computed as the centroid of the cluster points belonging to the head if false, the person centroid is computed as the centroid of the whole cluster points (default = true)
int max_points_
 maximum number of points for a person cluster
int min_points_
 minimum number of points for a person cluster
float heads_minimum_distance_
 minimum distance between persons' heads

Detailed Description

template<typename PointT>
class pcl::people::HeadBasedSubclustering< PointT >

Definition at line 59 of file head_based_subcluster.h.


Member Typedef Documentation

Definition at line 63 of file head_based_subcluster.h.

template<typename PointT>
typedef boost::shared_ptr<const PointCloud> pcl::people::HeadBasedSubclustering< PointT >::PointCloudConstPtr

Definition at line 65 of file head_based_subcluster.h.

template<typename PointT>
typedef boost::shared_ptr<PointCloud> pcl::people::HeadBasedSubclustering< PointT >::PointCloudPtr

Definition at line 64 of file head_based_subcluster.h.


Constructor & Destructor Documentation

template<typename PointT >
pcl::people::HeadBasedSubclustering< PointT >::HeadBasedSubclustering (  )  [inline]
template<typename PointT >
pcl::people::HeadBasedSubclustering< PointT >::~HeadBasedSubclustering (  )  [inline, virtual]

Destructor.

Definition at line 336 of file head_based_subcluster.hpp.


Member Function Documentation

template<typename PointT >
void pcl::people::HeadBasedSubclustering< PointT >::createSubClusters ( pcl::people::PersonCluster< PointT > &  cluster,
int  maxima_number_after_filtering,
std::vector< int > &  maxima_cloud_indices_filtered,
std::vector< pcl::people::PersonCluster< PointT > > &  subclusters 
) [inline]

Create subclusters centered on the heads position from the current cluster.

Parameters:
[in] cluster A PersonCluster.
[in] maxima_number Number of local maxima to use as centers of the new cluster.
[in] maxima_cloud_indices Cloud indices of local maxima to use as centers of the new cluster.
[out] subclusters Output vector of PersonCluster objects derived from the input cluster.

Definition at line 195 of file head_based_subcluster.hpp.

References pcl::people::HeadBasedSubclustering< PointT >::cloud_, pcl::people::PersonCluster< PointT >::getIndices(), pcl::people::HeadBasedSubclustering< PointT >::ground_coeffs_, pcl::people::HeadBasedSubclustering< PointT >::head_centroid_, pcl::people::HeadBasedSubclustering< PointT >::heads_minimum_distance_, pcl::PointIndices::indices, pcl::people::HeadBasedSubclustering< PointT >::min_points_, pcl::people::HeadBasedSubclustering< PointT >::sqrt_ground_coeffs_, and pcl::people::HeadBasedSubclustering< PointT >::vertical_.

Referenced by pcl::people::HeadBasedSubclustering< PointT >::subcluster().

template<typename PointT >
void pcl::people::HeadBasedSubclustering< PointT >::getDimensionLimits ( int &  min_points,
int &  max_points 
) [inline]

Get minimum and maximum allowed number of points for a person cluster.

Parameters:
[out] min_points Minimum allowed number of points for a person cluster.
[out] max_points Maximum allowed number of points for a person cluster.

Definition at line 121 of file head_based_subcluster.hpp.

References pcl::people::HeadBasedSubclustering< PointT >::max_points_, and pcl::people::HeadBasedSubclustering< PointT >::min_points_.

template<typename PointT >
void pcl::people::HeadBasedSubclustering< PointT >::getHeightLimits ( float &  min_height,
float &  max_height 
) [inline]

Get minimum and maximum allowed height for a person cluster.

Parameters:
[out] min_height Minimum allowed height for a person cluster.
[out] max_height Maximum allowed height for a person cluster.

Definition at line 114 of file head_based_subcluster.hpp.

References pcl::people::HeadBasedSubclustering< PointT >::max_height_, and pcl::people::HeadBasedSubclustering< PointT >::min_height_.

template<typename PointT >
float pcl::people::HeadBasedSubclustering< PointT >::getMinimumDistanceBetweenHeads (  )  [inline]

Get minimum distance between persons' heads.

Definition at line 128 of file head_based_subcluster.hpp.

References pcl::people::HeadBasedSubclustering< PointT >::heads_minimum_distance_.

template<typename PointT >
void pcl::people::HeadBasedSubclustering< PointT >::mergeClustersCloseInFloorCoordinates ( std::vector< pcl::people::PersonCluster< PointT > > &  input_clusters,
std::vector< pcl::people::PersonCluster< PointT > > &  output_clusters 
) [inline]
template<typename PointT >
void pcl::people::HeadBasedSubclustering< PointT >::setDimensionLimits ( int  min_points,
int  max_points 
) [inline]

Set minimum and maximum allowed number of points for a person cluster.

Parameters:
[in] min_points Minimum allowed number of points for a person cluster.
[in] max_points Maximum allowed number of points for a person cluster.

Definition at line 95 of file head_based_subcluster.hpp.

References pcl::people::HeadBasedSubclustering< PointT >::max_points_, and pcl::people::HeadBasedSubclustering< PointT >::min_points_.

template<typename PointT >
void pcl::people::HeadBasedSubclustering< PointT >::setGround ( Eigen::VectorXf &  ground_coeffs  )  [inline]

Set the ground coefficients.

Parameters:
[in] ground_coeffs The ground plane coefficients.

Definition at line 69 of file head_based_subcluster.hpp.

References pcl::people::HeadBasedSubclustering< PointT >::ground_coeffs_, and pcl::people::HeadBasedSubclustering< PointT >::sqrt_ground_coeffs_.

Referenced by pcl::people::GroundBasedPeopleDetectionApp< PointT >::compute().

template<typename PointT >
void pcl::people::HeadBasedSubclustering< PointT >::setHeadCentroid ( bool  head_centroid  )  [inline]

Set head_centroid_ to true (person centroid is in the head) or false (person centroid is the whole body centroid).

Parameters:
[in] head_centroid Set the location of the person centroid (head or body center) (default = true).

Definition at line 108 of file head_based_subcluster.hpp.

References pcl::people::HeadBasedSubclustering< PointT >::head_centroid_.

template<typename PointT >
void pcl::people::HeadBasedSubclustering< PointT >::setHeightLimits ( float  min_height,
float  max_height 
) [inline]

Set minimum and maximum allowed height for a person cluster.

Parameters:
[in] min_height Minimum allowed height for a person cluster (default = 1.3).
[in] max_height Maximum allowed height for a person cluster (default = 2.3).

Definition at line 88 of file head_based_subcluster.hpp.

References pcl::people::HeadBasedSubclustering< PointT >::max_height_, and pcl::people::HeadBasedSubclustering< PointT >::min_height_.

Referenced by pcl::people::GroundBasedPeopleDetectionApp< PointT >::compute().

template<typename PointT >
void pcl::people::HeadBasedSubclustering< PointT >::setInitialClusters ( std::vector< pcl::PointIndices > &  cluster_indices  )  [inline]

Set initial cluster indices.

Parameters:
[in] cluster_indices Point cloud indices corresponding to the initial clusters (before subclustering).

Definition at line 76 of file head_based_subcluster.hpp.

References pcl::people::HeadBasedSubclustering< PointT >::cluster_indices_.

Referenced by pcl::people::GroundBasedPeopleDetectionApp< PointT >::compute().

template<typename PointT >
void pcl::people::HeadBasedSubclustering< PointT >::setInputCloud ( PointCloudPtr cloud  )  [inline]

Set input cloud.

Parameters:
[in] cloud A pointer to the input point cloud.

Definition at line 63 of file head_based_subcluster.hpp.

References pcl::people::HeadBasedSubclustering< PointT >::cloud_.

Referenced by pcl::people::GroundBasedPeopleDetectionApp< PointT >::compute().

template<typename PointT >
void pcl::people::HeadBasedSubclustering< PointT >::setMinimumDistanceBetweenHeads ( float  heads_minimum_distance  )  [inline]

Set minimum distance between persons' heads.

Parameters:
[in] heads_minimum_distance Minimum allowed distance between persons' heads (default = 0.3).

Definition at line 102 of file head_based_subcluster.hpp.

References pcl::people::HeadBasedSubclustering< PointT >::heads_minimum_distance_.

Referenced by pcl::people::GroundBasedPeopleDetectionApp< PointT >::compute().

template<typename PointT >
void pcl::people::HeadBasedSubclustering< PointT >::setSensorPortraitOrientation ( bool  vertical  )  [inline]

Set sensor orientation to landscape mode (false) or portrait mode (true).

Parameters:
[in] vertical Landscape (false) or portrait (true) mode (default = false).

Definition at line 82 of file head_based_subcluster.hpp.

References pcl::people::HeadBasedSubclustering< PointT >::vertical_.

Referenced by pcl::people::GroundBasedPeopleDetectionApp< PointT >::compute().

template<typename PointT >
void pcl::people::HeadBasedSubclustering< PointT >::subcluster ( std::vector< pcl::people::PersonCluster< PointT > > &  clusters  )  [inline]

Member Data Documentation

template<typename PointT>
PointCloudPtr pcl::people::HeadBasedSubclustering< PointT >::cloud_ [protected]
template<typename PointT>
std::vector<pcl::PointIndices> pcl::people::HeadBasedSubclustering< PointT >::cluster_indices_ [protected]
template<typename PointT>
Eigen::VectorXf pcl::people::HeadBasedSubclustering< PointT >::ground_coeffs_ [protected]
template<typename PointT>
bool pcl::people::HeadBasedSubclustering< PointT >::head_centroid_ [protected]

if true, the person centroid is computed as the centroid of the cluster points belonging to the head if false, the person centroid is computed as the centroid of the whole cluster points (default = true)

Definition at line 217 of file head_based_subcluster.h.

Referenced by pcl::people::HeadBasedSubclustering< PointT >::createSubClusters(), pcl::people::HeadBasedSubclustering< PointT >::HeadBasedSubclustering(), pcl::people::HeadBasedSubclustering< PointT >::mergeClustersCloseInFloorCoordinates(), pcl::people::HeadBasedSubclustering< PointT >::setHeadCentroid(), and pcl::people::HeadBasedSubclustering< PointT >::subcluster().

template<typename PointT>
float pcl::people::HeadBasedSubclustering< PointT >::heads_minimum_distance_ [protected]
template<typename PointT>
float pcl::people::HeadBasedSubclustering< PointT >::max_height_ [protected]
template<typename PointT>
int pcl::people::HeadBasedSubclustering< PointT >::max_points_ [protected]
template<typename PointT>
float pcl::people::HeadBasedSubclustering< PointT >::min_height_ [protected]
template<typename PointT>
int pcl::people::HeadBasedSubclustering< PointT >::min_points_ [protected]
template<typename PointT>
float pcl::people::HeadBasedSubclustering< PointT >::sqrt_ground_coeffs_ [protected]
template<typename PointT>
bool pcl::people::HeadBasedSubclustering< PointT >::vertical_ [protected]

The documentation for this class was generated from the following files:
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends