Point Cloud Library (PCL)
1.3.1
|
The pcl_segmentation library contains algorithms for segmenting a point cloud into distinct clusters. These algorithms are best suited to processing a point cloud that is composed of a number of spatially isolated regions. In such cases, clustering is often used to break the cloud down into its constituent parts, which can then be processed independently.
Classes | |
class | pcl::EuclideanClusterExtraction |
EuclideanClusterExtraction represents a segmentation class for cluster extraction in an Euclidean sense. More... | |
class | pcl::LabeledEuclideanClusterExtraction |
LabeledEuclideanClusterExtraction represents a segmentation class for cluster extraction in an Euclidean sense, with label info. More... | |
class | pcl::ExtractPolygonalPrismData |
ExtractPolygonalPrismData uses a set of point indices that represent a planar model, and together with a given height, generates a 3D polygonal prism. More... | |
class | pcl::SACSegmentation |
SACSegmentation represents the Nodelet segmentation class for Sample Consensus methods and models, in the sense that it just creates a Nodelet wrapper for generic-purpose SAC-based segmentation. More... | |
class | pcl::SACSegmentationFromNormals |
SACSegmentationFromNormals represents the PCL nodelet segmentation class for Sample Consensus methods and models that require the use of surface normals for estimation. More... | |
class | pcl::SegmentDifferences |
SegmentDifferences obtains the difference between two spatially aligned point clouds and returns the difference between them for a maximum given distance threshold. More... | |
Functions | |
template<typename PointT > | |
void | pcl::extractEuclideanClusters (const PointCloud< PointT > &cloud, const boost::shared_ptr< search::Search< PointT > > &tree, float tolerance, std::vector< PointIndices > &clusters, unsigned int min_pts_per_cluster=1, unsigned int max_pts_per_cluster=(std::numeric_limits< int >::max)()) |
Decompose a region of space into clusters based on the Euclidean distance between points. | |
template<typename PointT > | |
void | pcl::extractEuclideanClusters (const PointCloud< PointT > &cloud, const std::vector< int > &indices, const boost::shared_ptr< search::Search< PointT > > &tree, float tolerance, std::vector< PointIndices > &clusters, unsigned int min_pts_per_cluster=1, unsigned int max_pts_per_cluster=(std::numeric_limits< int >::max)()) |
Decompose a region of space into clusters based on the Euclidean distance between points. | |
template<typename PointT , typename Normal > | |
void | pcl::extractEuclideanClusters (const PointCloud< PointT > &cloud, const PointCloud< Normal > &normals, float tolerance, const boost::shared_ptr< KdTree< PointT > > &tree, std::vector< PointIndices > &clusters, double eps_angle, unsigned int min_pts_per_cluster=1, unsigned int max_pts_per_cluster=(std::numeric_limits< int >::max)()) |
Decompose a region of space into clusters based on the euclidean distance between points, and the normal angular deviation. | |
template<typename PointT , typename Normal > | |
void | pcl::extractEuclideanClusters (const PointCloud< PointT > &cloud, const PointCloud< Normal > &normals, const std::vector< int > &indices, const boost::shared_ptr< KdTree< PointT > > &tree, float tolerance, std::vector< PointIndices > &clusters, double eps_angle, unsigned int min_pts_per_cluster=1, unsigned int max_pts_per_cluster=(std::numeric_limits< int >::max)()) |
Decompose a region of space into clusters based on the euclidean distance between points, and the normal angular deviation. | |
bool | pcl::comparePointClusters (const pcl::PointIndices &a, const pcl::PointIndices &b) |
Sort clusters method (for std::sort). | |
template<typename PointT > | |
void | pcl::extractLabeledEuclideanClusters (const PointCloud< PointT > &cloud, const boost::shared_ptr< search::Search< PointT > > &tree, float tolerance, std::vector< std::vector< PointIndices > > &labeled_clusters, unsigned int min_pts_per_cluster=1, unsigned int max_pts_per_cluster=(std::numeric_limits< int >::max)(), unsigned int max_label=(std::numeric_limits< int >::max)) |
Decompose a region of space into clusters based on the Euclidean distance between points. | |
bool | pcl::compareLabeledPointClusters (const pcl::PointIndices &a, const pcl::PointIndices &b) |
Sort clusters method (for std::sort). | |
template<typename PointT > | |
bool | pcl::isPointIn2DPolygon (const PointT &point, const pcl::PointCloud< PointT > &polygon) |
General purpose method for checking if a 3D point is inside or outside a given 2D polygon. | |
template<typename PointT > | |
bool | pcl::isXYPointIn2DXYPolygon (const PointT &point, const pcl::PointCloud< PointT > &polygon) |
Check if a 2d point (X and Y coordinates considered only!) is inside or outside a given polygon. | |
template<typename PointT > | |
void | pcl::getPointCloudDifference (const pcl::PointCloud< PointT > &src, const pcl::PointCloud< PointT > &tgt, double threshold, const boost::shared_ptr< pcl::search::Search< PointT > > &tree, pcl::PointCloud< PointT > &output) |
Obtain the difference between two aligned point clouds as another point cloud, given a distance threshold. |
bool pcl::compareLabeledPointClusters | ( | const pcl::PointIndices & | a, |
const pcl::PointIndices & | b | ||
) | [inline] |
Sort clusters method (for std::sort).
Definition at line 163 of file extract_labeled_clusters.h.
bool pcl::comparePointClusters | ( | const pcl::PointIndices & | a, |
const pcl::PointIndices & | b | ||
) | [inline] |
Sort clusters method (for std::sort).
Definition at line 369 of file extract_clusters.h.
void pcl::extractEuclideanClusters | ( | const PointCloud< PointT > & | cloud, |
const boost::shared_ptr< search::Search< PointT > > & | tree, | ||
float | tolerance, | ||
std::vector< PointIndices > & | clusters, | ||
unsigned int | min_pts_per_cluster = 1 , |
||
unsigned int | max_pts_per_cluster = (std::numeric_limits<int>::max) () |
||
) |
Decompose a region of space into clusters based on the Euclidean distance between points.
cloud | the point cloud message |
tree | the spatial locator (e.g., kd-tree) used for nearest neighbors searching |
tolerance | the spatial cluster tolerance as a measure in L2 Euclidean space |
clusters | the resultant clusters containing point indices (as a vector of PointIndices) |
min_pts_per_cluster | minimum number of points that a cluster may contain (default: 1) |
max_pts_per_cluster | maximum number of points that a cluster may contain (default: max int) |
Definition at line 45 of file extract_clusters.hpp.
void pcl::extractEuclideanClusters | ( | const PointCloud< PointT > & | cloud, |
const std::vector< int > & | indices, | ||
const boost::shared_ptr< search::Search< PointT > > & | tree, | ||
float | tolerance, | ||
std::vector< PointIndices > & | clusters, | ||
unsigned int | min_pts_per_cluster = 1 , |
||
unsigned int | max_pts_per_cluster = (std::numeric_limits<int>::max) () |
||
) |
Decompose a region of space into clusters based on the Euclidean distance between points.
cloud | the point cloud message |
indices | a list of point indices to use from cloud |
tree | the spatial locator (e.g., kd-tree) used for nearest neighbors searching |
tolerance | the spatial cluster tolerance as a measure in L2 Euclidean space |
clusters | the resultant clusters containing point indices (as a vector of PointIndices) |
min_pts_per_cluster | minimum number of points that a cluster may contain (default: 1) |
max_pts_per_cluster | maximum number of points that a cluster may contain (default: max int) |
Definition at line 114 of file extract_clusters.hpp.
void pcl::extractEuclideanClusters | ( | const PointCloud< PointT > & | cloud, |
const PointCloud< Normal > & | normals, | ||
float | tolerance, | ||
const boost::shared_ptr< KdTree< PointT > > & | tree, | ||
std::vector< PointIndices > & | clusters, | ||
double | eps_angle, | ||
unsigned int | min_pts_per_cluster = 1 , |
||
unsigned int | max_pts_per_cluster = (std::numeric_limits<int>::max) () |
||
) |
Decompose a region of space into clusters based on the euclidean distance between points, and the normal angular deviation.
cloud | the point cloud message |
normals | the point cloud message containing normal information |
tree | the spatial locator (e.g., kd-tree) used for nearest neighbors searching |
tolerance | the spatial cluster tolerance as a measure in the L2 Euclidean space |
clusters | the resultant clusters containing point indices (as a vector of PointIndices) |
eps_angle | the maximum allowed difference between normals in radians for cluster/region growing |
min_pts_per_cluster | minimum number of points that a cluster may contain (default: 1) |
max_pts_per_cluster | maximum number of points that a cluster may contain (default: max int) |
Definition at line 89 of file extract_clusters.h.
void pcl::extractEuclideanClusters | ( | const PointCloud< PointT > & | cloud, |
const PointCloud< Normal > & | normals, | ||
const std::vector< int > & | indices, | ||
const boost::shared_ptr< KdTree< PointT > > & | tree, | ||
float | tolerance, | ||
std::vector< PointIndices > & | clusters, | ||
double | eps_angle, | ||
unsigned int | min_pts_per_cluster = 1 , |
||
unsigned int | max_pts_per_cluster = (std::numeric_limits<int>::max) () |
||
) |
Decompose a region of space into clusters based on the euclidean distance between points, and the normal angular deviation.
cloud | the point cloud message |
normals | the point cloud message containing normal information |
indices | a list of point indices to use from cloud |
tree | the spatial locator (e.g., kd-tree) used for nearest neighbors searching |
tolerance | the spatial cluster tolerance as a measure in the L2 Euclidean space |
clusters | the resultant clusters containing point indices (as PointIndices) |
eps_angle | the maximum allowed difference between normals in degrees for cluster/region growing |
min_pts_per_cluster | minimum number of points that a cluster may contain (default: 1) |
max_pts_per_cluster | maximum number of points that a cluster may contain (default: max int) |
Definition at line 187 of file extract_clusters.h.
void pcl::extractLabeledEuclideanClusters | ( | const PointCloud< PointT > & | cloud, |
const boost::shared_ptr< search::Search< PointT > > & | tree, | ||
float | tolerance, | ||
std::vector< std::vector< PointIndices > > & | labeled_clusters, | ||
unsigned int | min_pts_per_cluster = 1 , |
||
unsigned int | max_pts_per_cluster = (std::numeric_limits<int>::max) () , |
||
unsigned int | max_label = (std::numeric_limits<int>::max) |
||
) |
Decompose a region of space into clusters based on the Euclidean distance between points.
cloud | the point cloud message |
tree | the spatial locator (e.g., kd-tree) used for nearest neighbors searching |
tolerance | the spatial cluster tolerance as a measure in L2 Euclidean space |
clusters | the resultant clusters containing point indices (as a vector of PointIndices) |
min_pts_per_cluster | minimum number of points that a cluster may contain (default: 1) |
max_pts_per_cluster | maximum number of points that a cluster may contain (default: max int) |
Definition at line 44 of file extract_labeled_clusters.hpp.
void pcl::getPointCloudDifference | ( | const pcl::PointCloud< PointT > & | src, |
const pcl::PointCloud< PointT > & | tgt, | ||
double | threshold, | ||
const boost::shared_ptr< pcl::search::Search< PointT > > & | tree, | ||
pcl::PointCloud< PointT > & | output | ||
) |
Obtain the difference between two aligned point clouds as another point cloud, given a distance threshold.
src | the input point cloud source |
tgt | the input point cloud target we need to obtain the difference against |
threshold | the distance threshold (tolerance) for point correspondences. (e.g., check if f a point p1 from src has a correspondence > threshold than a point p2 from tgt) |
tree | the spatial locator (e.g., kd-tree) used for nearest neighbors searching built over tgt |
output | the resultant output point cloud difference |
Definition at line 46 of file segment_differences.hpp.
bool pcl::isPointIn2DPolygon | ( | const PointT & | point, |
const pcl::PointCloud< PointT > & | polygon | ||
) |
General purpose method for checking if a 3D point is inside or outside a given 2D polygon.
point | a 3D point projected onto the same plane as the polygon |
polygon | a polygon |
Definition at line 47 of file extract_polygonal_prism_data.hpp.
bool pcl::isXYPointIn2DXYPolygon | ( | const PointT & | point, |
const pcl::PointCloud< PointT > & | polygon | ||
) |
Check if a 2d point (X and Y coordinates considered only!) is inside or outside a given polygon.
This method assumes that both the point and the polygon are projected onto the XY plane.
point | a 3D point projected onto the same plane as the polygon |
polygon | a polygon |
Definition at line 111 of file extract_polygonal_prism_data.hpp.