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