Point Cloud Library (PCL) 1.12.0
Loading...
Searching...
No Matches
List of all members | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes
pcl::ExtractPolygonalPrismData< PointT > Class Template Reference

ExtractPolygonalPrismData uses a set of point indices that represent a planar model, and together with a given height, generates a 3D polygonal prism. More...

#include <pcl/segmentation/extract_polygonal_prism_data.h>

+ Inheritance diagram for pcl::ExtractPolygonalPrismData< PointT >:
+ Collaboration diagram for pcl::ExtractPolygonalPrismData< PointT >:

Public Types

using PointCloud = pcl::PointCloud<PointT>
 
using PointCloudPtr = typename PointCloud::Ptr
 
using PointCloudConstPtr = typename PointCloud::ConstPtr
 
using PointIndicesPtr = PointIndices::Ptr
 
using PointIndicesConstPtr = PointIndices::ConstPtr
 
- Public Types inherited from pcl::PCLBase< PointT >
using PointCloud = pcl::PointCloud<PointT>
 
using PointCloudPtr = typename PointCloud::Ptr
 
using PointCloudConstPtr = typename PointCloud::ConstPtr
 
using PointIndicesPtr = PointIndices::Ptr
 
using PointIndicesConstPtr = PointIndices::ConstPtr
 

Public Member Functions

 ExtractPolygonalPrismData ()
 Empty constructor.
 
void setInputPlanarHull (const PointCloudConstPtr &hull)
 Provide a pointer to the input planar hull dataset.
 
PointCloudConstPtr getInputPlanarHull () const
 Get a pointer the input planar hull dataset.
 
void setHeightLimits (double height_min, double height_max)
 Set the height limits.
 
void getHeightLimits (double &height_min, double &height_max) const
 Get the height limits (min/max) as set by the user.
 
void setViewPoint (float vpx, float vpy, float vpz)
 Set the viewpoint.
 
void getViewPoint (float &vpx, float &vpy, float &vpz) const
 Get the viewpoint.
 
void segment (PointIndices &output)
 Cluster extraction in a PointCloud given by <setInputCloud (), setIndices ()>
 
- Public Member Functions inherited from pcl::PCLBase< PointT >
 PCLBase ()
 Empty constructor.
 
 PCLBase (const PCLBase &base)
 Copy constructor.
 
virtual ~PCLBase ()=default
 Destructor.
 
virtual void setInputCloud (const PointCloudConstPtr &cloud)
 Provide a pointer to the input dataset.
 
PointCloudConstPtr const getInputCloud () const
 Get a pointer to the input point cloud dataset.
 
virtual void setIndices (const IndicesPtr &indices)
 Provide a pointer to the vector of indices that represents the input data.
 
virtual void setIndices (const IndicesConstPtr &indices)
 Provide a pointer to the vector of indices that represents the input data.
 
virtual void setIndices (const PointIndicesConstPtr &indices)
 Provide a pointer to the vector of indices that represents the input data.
 
virtual void setIndices (std::size_t row_start, std::size_t col_start, std::size_t nb_rows, std::size_t nb_cols)
 Set the indices for the points laying within an interest region of the point cloud.
 
IndicesPtr getIndices ()
 Get a pointer to the vector of indices used.
 
IndicesConstPtr const getIndices () const
 Get a pointer to the vector of indices used.
 
const PointToperator[] (std::size_t pos) const
 Override PointCloud operator[] to shorten code.
 

Protected Member Functions

virtual std::string getClassName () const
 Class getName method.
 
- Protected Member Functions inherited from pcl::PCLBase< PointT >
bool initCompute ()
 This method should get called before starting the actual computation.
 
bool deinitCompute ()
 This method should get called after finishing the actual computation.
 

Protected Attributes

PointCloudConstPtr planar_hull_
 A pointer to the input planar hull dataset.
 
int min_pts_hull_
 The minimum number of points needed on the convex hull.
 
double height_limit_min_
 The minimum allowed height (distance to the model) a point will be considered from.
 
double height_limit_max_
 The maximum allowed height (distance to the model) a point will be considered from.
 
float vpx_
 Values describing the data acquisition viewpoint.
 
float vpy_
 
float vpz_
 
- Protected Attributes inherited from pcl::PCLBase< PointT >
PointCloudConstPtr input_
 The input point cloud dataset.
 
IndicesPtr indices_
 A pointer to the vector of point indices to use.
 
bool use_indices_
 Set to true if point indices are used.
 
bool fake_indices_
 If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud.
 

Detailed Description

template<typename PointT>
class pcl::ExtractPolygonalPrismData< PointT >

ExtractPolygonalPrismData uses a set of point indices that represent a planar model, and together with a given height, generates a 3D polygonal prism.

The polygonal prism is then used to segment all points lying inside it.

An example of its usage is to extract the data lying within a set of 3D boundaries (e.g., objects supported by a plane).

Example usage:

double z_min = 0., z_max = 0.05; // we want the points above the plane, no farther than 5 cm from the surface
// hull.setDimension (2); // not necessarily needed, but we need to check the dimensionality of the output
hull.setInputCloud (cloud);
hull.reconstruct (hull_points);
if (hull.getDimension () == 2)
{
prism.setInputCloud (point_cloud);
prism.setInputPlanarHull (hull_points);
prism.setHeightLimits (z_min, z_max);
prism.segment (cloud_indices);
}
else
PCL_ERROR ("The input cloud does not represent a planar surface.\n");
Iterator class for point clouds with or without given indices.
shared_ptr< PointCloud< PointT > > Ptr
Author
Radu Bogdan Rusu

Definition at line 102 of file extract_polygonal_prism_data.h.

Member Typedef Documentation

◆ PointCloud

Definition at line 110 of file extract_polygonal_prism_data.h.

◆ PointCloudConstPtr

Definition at line 112 of file extract_polygonal_prism_data.h.

◆ PointCloudPtr

Definition at line 111 of file extract_polygonal_prism_data.h.

◆ PointIndicesConstPtr

Definition at line 115 of file extract_polygonal_prism_data.h.

◆ PointIndicesPtr

Definition at line 114 of file extract_polygonal_prism_data.h.

Constructor & Destructor Documentation

◆ ExtractPolygonalPrismData()

template<typename PointT >
pcl::ExtractPolygonalPrismData< PointT >::ExtractPolygonalPrismData ( )
inline

Empty constructor.

Definition at line 118 of file extract_polygonal_prism_data.h.

Member Function Documentation

◆ getClassName()

template<typename PointT >
virtual std::string pcl::ExtractPolygonalPrismData< PointT >::getClassName ( ) const
inlineprotectedvirtual

Class getName method.

Definition at line 209 of file extract_polygonal_prism_data.h.

◆ getHeightLimits()

template<typename PointT >
void pcl::ExtractPolygonalPrismData< PointT >::getHeightLimits ( double & height_min,
double & height_max ) const
inline

Get the height limits (min/max) as set by the user.

The default values are -FLT_MAX, FLT_MAX.

Parameters
[out]height_minthe resultant min height limit
[out]height_maxthe resultant max height limit

Definition at line 153 of file extract_polygonal_prism_data.h.

References pcl::ExtractPolygonalPrismData< PointT >::height_limit_max_, and pcl::ExtractPolygonalPrismData< PointT >::height_limit_min_.

◆ getInputPlanarHull()

template<typename PointT >
PointCloudConstPtr pcl::ExtractPolygonalPrismData< PointT >::getInputPlanarHull ( ) const
inline

Get a pointer the input planar hull dataset.

Definition at line 132 of file extract_polygonal_prism_data.h.

References pcl::ExtractPolygonalPrismData< PointT >::planar_hull_.

◆ getViewPoint()

template<typename PointT >
void pcl::ExtractPolygonalPrismData< PointT >::getViewPoint ( float & vpx,
float & vpy,
float & vpz ) const
inline

◆ segment()

Cluster extraction in a PointCloud given by <setInputCloud (), setIndices ()>

Parameters
[out]outputthe resultant point indices that support the model found (inliers)

Definition at line 149 of file extract_polygonal_prism_data.hpp.

References pcl::computeMeanAndCovarianceMatrix(), pcl::ConstCloudIterator< PointT >::ConstCloudIterator(), pcl::eigen33(), pcl::isXYPointIn2DXYPolygon(), pcl::pointToPlaneDistanceSigned(), and pcl::ConstCloudIterator< PointT >::size().

◆ setHeightLimits()

template<typename PointT >
void pcl::ExtractPolygonalPrismData< PointT >::setHeightLimits ( double height_min,
double height_max )
inline

Set the height limits.

All points having distances to the model outside this interval will be discarded.

Parameters
[in]height_minthe minimum allowed distance to the plane model value
[in]height_maxthe maximum allowed distance to the plane model value

Definition at line 141 of file extract_polygonal_prism_data.h.

References pcl::ExtractPolygonalPrismData< PointT >::height_limit_max_, and pcl::ExtractPolygonalPrismData< PointT >::height_limit_min_.

◆ setInputPlanarHull()

template<typename PointT >
void pcl::ExtractPolygonalPrismData< PointT >::setInputPlanarHull ( const PointCloudConstPtr & hull)
inline

Provide a pointer to the input planar hull dataset.

Note
Please see the example in the class description for how to obtain this.
Parameters
[in]hullthe input planar hull dataset

Definition at line 128 of file extract_polygonal_prism_data.h.

References pcl::ExtractPolygonalPrismData< PointT >::planar_hull_.

◆ setViewPoint()

template<typename PointT >
void pcl::ExtractPolygonalPrismData< PointT >::setViewPoint ( float vpx,
float vpy,
float vpz )
inline

Set the viewpoint.

Parameters
[in]vpxthe X coordinate of the viewpoint
[in]vpythe Y coordinate of the viewpoint
[in]vpzthe Z coordinate of the viewpoint

Definition at line 165 of file extract_polygonal_prism_data.h.

References pcl::ExtractPolygonalPrismData< PointT >::vpx_, pcl::ExtractPolygonalPrismData< PointT >::vpy_, and pcl::ExtractPolygonalPrismData< PointT >::vpz_.

Member Data Documentation

◆ height_limit_max_

template<typename PointT >
double pcl::ExtractPolygonalPrismData< PointT >::height_limit_max_
protected

The maximum allowed height (distance to the model) a point will be considered from.

Definition at line 202 of file extract_polygonal_prism_data.h.

Referenced by pcl::ExtractPolygonalPrismData< PointT >::getHeightLimits(), and pcl::ExtractPolygonalPrismData< PointT >::setHeightLimits().

◆ height_limit_min_

template<typename PointT >
double pcl::ExtractPolygonalPrismData< PointT >::height_limit_min_
protected

The minimum allowed height (distance to the model) a point will be considered from.

Definition at line 197 of file extract_polygonal_prism_data.h.

Referenced by pcl::ExtractPolygonalPrismData< PointT >::getHeightLimits(), and pcl::ExtractPolygonalPrismData< PointT >::setHeightLimits().

◆ min_pts_hull_

template<typename PointT >
int pcl::ExtractPolygonalPrismData< PointT >::min_pts_hull_
protected

The minimum number of points needed on the convex hull.

Definition at line 192 of file extract_polygonal_prism_data.h.

◆ planar_hull_

◆ vpx_

Values describing the data acquisition viewpoint.

Default: 0,0,0.

Definition at line 205 of file extract_polygonal_prism_data.h.

Referenced by pcl::ExtractPolygonalPrismData< PointT >::getViewPoint(), and pcl::ExtractPolygonalPrismData< PointT >::setViewPoint().

◆ vpy_

◆ vpz_


The documentation for this class was generated from the following files: