Point Cloud Library (PCL)
1.11.1-dev
|
43 #include <pcl/people/person_cluster.h>
44 #include <pcl/people/height_map_2d.h>
57 template <
typename Po
intT>
116 setGround (Eigen::VectorXf& ground_coeffs);
229 #include <pcl/people/impl/head_based_subcluster.hpp>
PointCloudPtr cloud_
pointer to the input cloud
HeadBasedSubclustering()
Constructor.
std::vector< pcl::PointIndices > cluster_indices_
initial clusters indices
void setInitialClusters(std::vector< pcl::PointIndices > &cluster_indices)
Set initial cluster indices.
bool vertical_
if true, the sensor is considered to be vertically placed (portrait mode)
void setHeadCentroid(bool head_centroid)
Set head_centroid_ to true (person centroid is in the head) or false (person centroid is the whole bo...
void setSensorPortraitOrientation(bool vertical)
Set sensor orientation to landscape mode (false) or portrait mode (true).
void subcluster(std::vector< pcl::people::PersonCluster< PointT > > &clusters)
Compute subclusters and return them into a vector of PersonCluster.
void setDimensionLimits(int min_points, int max_points)
Set minimum and maximum allowed number of points for a person cluster.
float sqrt_ground_coeffs_
ground plane normalization factor
Eigen::VectorXf ground_coeffs_
ground plane coefficients
virtual ~HeadBasedSubclustering()
Destructor.
PointCloud represents the base class in PCL for storing collections of 3D points.
float max_height_
person clusters maximum height from the ground plane
float min_height_
person clusters minimum height from the ground plane
void setHeightLimits(float min_height, float max_height)
Set minimum and maximum allowed height for a person cluster.
float heads_minimum_distance_
minimum distance between persons' heads
int min_points_
minimum number of points for a person cluster
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.
HeadBasedSubclustering represents a class for searching for people inside a HeightMap2D based on a 3D...
typename PointCloud::ConstPtr PointCloudConstPtr
void setGround(Eigen::VectorXf &ground_coeffs)
Set the ground coefficients.
int max_points_
maximum number of points for a person cluster
void setMinimumDistanceBetweenHeads(float heads_minimum_distance)
Set minimum distance between persons' heads.
PersonCluster represents a class for representing information about a cluster containing a person.
void setInputCloud(PointCloudPtr &cloud)
Set input cloud.
shared_ptr< PointCloud< PointT > > Ptr
typename PointCloud::Ptr PointCloudPtr
shared_ptr< const PointCloud< PointT > > ConstPtr
void getHeightLimits(float &min_height, float &max_height)
Get minimum and maximum allowed height for a person cluster.
void mergeClustersCloseInFloorCoordinates(std::vector< pcl::people::PersonCluster< PointT > > &input_clusters, std::vector< pcl::people::PersonCluster< PointT > > &output_clusters)
Merge clusters close in floor coordinates.
float getMinimumDistanceBetweenHeads()
Get minimum distance between persons' heads.
bool head_centroid_
if true, the person centroid is computed as the centroid of the cluster points belonging to the head ...
void getDimensionLimits(int &min_points, int &max_points)
Get minimum and maximum allowed number of points for a person cluster.