43 #include <pcl/point_types.h>
44 #include <pcl/visualization/pcl_visualizer.h>
55 template <
typename Po
intT>
bool operator<(const PersonCluster<PointT>& c1,
const PersonCluster<PointT>& c2);
57 template <
typename Po
intT>
145 const Eigen::VectorXf& ground_coeffs,
146 float sqrt_ground_coeffs,
148 bool vertical =
false);
176 updateHeight (
const Eigen::VectorXf& ground_coeffs,
float sqrt_ground_coeffs);
321 const Eigen::VectorXf& ground_coeffs,
322 float sqrt_ground_coeffs,
329 #include <pcl/people/impl/person_cluster.hpp>
float sum_z_
Sum of z coordinates of the cluster points.
bool vertical_
If true, the sensor is considered to be vertically placed (portrait mode).
float getPersonConfidence() const
Returns the HOG confidence.
float c_z_
z coordinate of the cluster centroid.
int getNumberPoints() const
Returns the number of points of the cluster.
float sum_y_
Sum of y coordinates of the cluster points.
pcl::PointIndices points_indices_
Point cloud indices of the cluster points.
void setPersonConfidence(float confidence)
Sets the HOG confidence.
PersonCluster(const PointCloudPtr &input_cloud, const pcl::PointIndices &indices, const Eigen::VectorXf &ground_coeffs, float sqrt_ground_coeffs, bool head_centroid, bool vertical=false)
Constructor.
PersonCluster represents a class for representing information about a cluster containing a person...
float height_
Cluster height from the ground plane.
Eigen::Vector3f tcenter_
Theoretical cluster center (between ttop_ and tbottom_).
Eigen::Vector3f & getTop()
Returns the top point.
virtual ~PersonCluster()
Destructor.
Eigen::Vector3f bottom_
Cluster bottom point.
Eigen::Vector3f center_
Cluster centroid.
Eigen::Vector3f & getTTop()
Returns the theoretical top point.
float min_y_
Minimum y coordinate of the cluster points.
Eigen::Vector3f & getCenter()
Returns the centroid.
float min_z_
Minimum z coordinate of the cluster points.
float getDistance() const
Returns the distance of the cluster from the sensor.
typename PointCloud::Ptr PointCloudPtr
float max_y_
Maximum y coordinate of the cluster points.
pcl::PointIndices & getIndices()
Returns the indices of the point cloud points corresponding to the cluster.
Eigen::Vector3f & getMin()
Returns the point formed by min x, min y and min z.
Eigen::Vector3f min_
Vector containing the minimum coordinates of the cluster.
float angle_min_
Minimum angle of the cluster points.
shared_ptr< PointCloud< PointT > > Ptr
Eigen::Vector3f & getTCenter()
Returns the theoretical centroid (at half height).
float getAngle() const
Returns the angle formed by the cluster's centroid with respect to the sensor (in radians)...
PCL Visualizer main class.
float angle_max_
Maximum angle of the cluster points.
void init(const PointCloudPtr &input_cloud, const pcl::PointIndices &indices, const Eigen::VectorXf &ground_coeffs, float sqrt_ground_coeffs, bool head_centroid, bool vertical)
PersonCluster initialization.
Eigen::Vector3f max_
Vector containing the maximum coordinates of the cluster.
typename PointCloud::ConstPtr PointCloudConstPtr
float getAngleMin() const
Returns the minimum angle formed by the cluster with respect to the sensor (in radians).
int n_
Number of cluster points.
Eigen::Vector3f tbottom_
Theoretical cluster bottom (lying on the ground plane).
float getHeight() const
Returns the height of the cluster.
float updateHeight(const Eigen::VectorXf &ground_coeffs)
Update the height of the cluster.
Eigen::Vector3f ttop_
Theoretical cluster top.
PointCloud represents the base class in PCL for storing collections of 3D points. ...
shared_ptr< const PointCloud< PointT > > ConstPtr
float distance_
Cluster distance from the sensor.
Eigen::Vector3f & getMax()
Returns the point formed by max x, max y and max z.
float sum_x_
Sum of x coordinates of the cluster points.
float c_y_
y coordinate of the cluster centroid.
float c_x_
x coordinate of the cluster centroid.
float angle_
Cluster centroid horizontal angle with respect to z axis.
float getAngleMax() const
Returns the maximum angle formed by the cluster with respect to the sensor (in radians).
void drawTBoundingBox(pcl::visualization::PCLVisualizer &viewer, int person_number)
Draws the theoretical 3D bounding box of the cluster in the PCL visualizer.
float min_x_
Minimum x coordinate of the cluster points.
Eigen::Vector3f & getTBottom()
Returns the theoretical bottom point.
Eigen::Vector3f & getBottom()
Returns the bottom point.
float max_x_
Maximum x coordinate of the cluster points.
float max_z_
Maximum z coordinate of the cluster points.
float person_confidence_
PersonCluster HOG confidence.
void setHeight(float height)
Sets the cluster height.
Eigen::Vector3f top_
Cluster top point.