pcl::ExtractPolygonalPrismData< PointT > Class Template Reference
Module segmentation

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 >:

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

## Protected Member Functions

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

## Protected Attributes

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

## 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
pcl::PointCloud<pcl::PointXYZ>::Ptr hull_points (new pcl::PointCloud<pcl::PointXYZ> ());
pcl::ConvexHull<pcl::PointXYZ> hull;
// 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)
{
pcl::ExtractPolygonalPrismData<pcl::PointXYZ> prism;
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");

Author
  Radu Bogdan Rusu

Definition at line 101 of file extract_polygonal_prism_data.h.

## Member Typedef Documentation

## PointCloud

template<typename PointT>

using pcl::ExtractPolygonalPrismData< PointT >::PointCloud = pcl::PointCloud<PointT>

Definition at line 109 of file extract_polygonal_prism_data.h.

## PointCloudConstPtr

template<typename PointT>

using pcl::ExtractPolygonalPrismData< PointT >::PointCloudConstPtr = typename PointCloud::ConstPtr

Definition at line 111 of file extract_polygonal_prism_data.h.

## PointCloudPtr

template<typename PointT>

using pcl::ExtractPolygonalPrismData< PointT >::PointCloudPtr = typename PointCloud::Ptr

Definition at line 110 of file extract_polygonal_prism_data.h.

## PointIndicesConstPtr

template<typename PointT>

using pcl::ExtractPolygonalPrismData< PointT >::PointIndicesConstPtr = PointIndices::ConstPtr

Definition at line 114 of file extract_polygonal_prism_data.h.

## PointIndicesPtr

template<typename PointT>

using pcl::ExtractPolygonalPrismData< PointT >::PointIndicesPtr = PointIndices::Ptr

Definition at line 113 of file extract_polygonal_prism_data.h.

## Constructor & Destructor Documentation

## ExtractPolygonalPrismData()

template<typename PointT>

pcl::ExtractPolygonalPrismData< PointT >::ExtractPolygonalPrismData | ( |  | ) |

inline

Empty constructor.

Definition at line 117 of file extract_polygonal_prism_data.h.

## Member Function Documentation

## getClassName()

template<typename PointT>

virtual std::string pcl::ExtractPolygonalPrismData< PointT >::getClassName | ( |  | ) | const

inline protected virtual

Class getName method.

Definition at line 208 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_min | the resultant min height limit
  [out] | height_max | the resultant max height limit

Definition at line 152 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 131 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

Get the viewpoint.

Definition at line 173 of file extract_polygonal_prism_data.h.

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

## segment()

template<typename PointT >

void pcl::ExtractPolygonalPrismData< PointT >::segment | ( | pcl::PointIndices & | output | ) |

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

Parameters

  [out] | output | the resultant point indices that support the model found (inliers)

Definition at line 148 of file extract_polygonal_prism_data.hpp.

References pcl::computeMeanAndCovarianceMatrix(), pcl::geometry::distance(), pcl::eigen33(), pcl::PointIndices::header, pcl::PointIndices::indices, pcl::isXYPointIn2DXYPolygon(), pcl::PointCloud< PointT >::points, pcl::pointToPlaneDistanceSigned(), and pcl::SampleConsensusModelPlane< PointT >::projectPoints().

## 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_min | the minimum allowed distance to the plane model value
  [in] | height_max | the maximum allowed distance to the plane model value

Definition at line 140 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] | hull | the input planar hull dataset

Definition at line 127 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] | vpx | the X coordinate of the viewpoint
  [in] | vpy | the Y coordinate of the viewpoint
  [in] | vpz | the Z coordinate of the viewpoint

Definition at line 164 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 201 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 196 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 191 of file extract_polygonal_prism_data.h.

## planar_hull_

template<typename PointT>

PointCloudConstPtr pcl::ExtractPolygonalPrismData< PointT >::planar_hull_

protected

A pointer to the input planar hull dataset.

Definition at line 188 of file extract_polygonal_prism_data.h.

Referenced by pcl::ExtractPolygonalPrismData< PointT >::getInputPlanarHull(), and pcl::ExtractPolygonalPrismData< PointT >::setInputPlanarHull().

## vpx_

template<typename PointT>

float pcl::ExtractPolygonalPrismData< PointT >::vpx_

protected

Values describing the data acquisition viewpoint.

Default: 0,0,0.

Definition at line 204 of file extract_polygonal_prism_data.h.

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

## vpy_

template<typename PointT>

float pcl::ExtractPolygonalPrismData< PointT >::vpy_

protected

Definition at line 204 of file extract_polygonal_prism_data.h.

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

## vpz_

template<typename PointT>

float pcl::ExtractPolygonalPrismData< PointT >::vpz_

protected

Definition at line 204 of file extract_polygonal_prism_data.h.

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

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

- pcl/segmentation/extract_polygonal_prism_data.h
- pcl/segmentation/impl/extract_polygonal_prism_data.hpp

pcl::ExtractPolygonalPrismData::segment
void segment(PointIndices &output)
Cluster extraction in a PointCloud given by <setInputCloud (), setIndices ()>
Definition: extract_polygonal_prism_data.hpp:148
pcl::ConvexHull::getDimension
int getDimension() const
Returns the dimensionality (2 or 3) of the calculated hull.
Definition: convex_hull.h:164
pcl::ConvexHull::reconstruct
void reconstruct(PointCloud &points, std::vector< pcl::Vertices > &polygons)
Compute a convex hull for all points given.
Definition: convex_hull.hpp:479
pcl::PointCloud< pcl::PointXYZ >
pcl::PCLBase< PointInT >::setInputCloud
virtual void setInputCloud(const PointCloudConstPtr &cloud)
Provide a pointer to the input dataset.
Definition: pcl_base.hpp:65
pcl::ExtractPolygonalPrismData::setInputPlanarHull
void setInputPlanarHull(const PointCloudConstPtr &hull)
Provide a pointer to the input planar hull dataset.
Definition: extract_polygonal_prism_data.h:127
pcl::ExtractPolygonalPrismData
ExtractPolygonalPrismData uses a set of point indices that represent a planar model,...
Definition: extract_polygonal_prism_data.h:101
pcl::PointCloud::Ptr
shared_ptr< PointCloud< PointT > > Ptr
Definition: point_cloud.h:415
pcl::ConvexHull
ConvexHull using libqhull library.
Definition: convex_hull.h:72
pcl::ExtractPolygonalPrismData::setHeightLimits
void setHeightLimits(double height_min, double height_max)
Set the height limits.
Definition: extract_polygonal_prism_data.h:140