|
Point Cloud Library (PCL)
1.6.0
|
OrganizedMultiPlaneSegmentation finds all planes present in the input cloud, and outputs a vector of plane equations, as well as a vector of point clouds corresponding to the inliers of each detected plane. More...
#include <pcl/segmentation/organized_multi_plane_segmentation.h>


Public Types | |
| typedef pcl::PointCloud< PointT > | PointCloud |
| typedef PointCloud::Ptr | PointCloudPtr |
| typedef PointCloud::ConstPtr | PointCloudConstPtr |
| typedef pcl::PointCloud< PointNT > | PointCloudN |
| typedef PointCloudN::Ptr | PointCloudNPtr |
| typedef PointCloudN::ConstPtr | PointCloudNConstPtr |
| typedef pcl::PointCloud< PointLT > | PointCloudL |
| typedef PointCloudL::Ptr | PointCloudLPtr |
| typedef PointCloudL::ConstPtr | PointCloudLConstPtr |
| typedef pcl::PlaneCoefficientComparator < PointT, PointNT > | PlaneComparator |
| typedef PlaneComparator::Ptr | PlaneComparatorPtr |
| typedef PlaneComparator::ConstPtr | PlaneComparatorConstPtr |
| typedef pcl::PlaneRefinementComparator < PointT, PointNT, PointLT > | PlaneRefinementComparator |
| typedef PlaneRefinementComparator::Ptr | PlaneRefinementComparatorPtr |
| typedef PlaneRefinementComparator::ConstPtr | PlaneRefinementComparatorConstPtr |
| typedef PointIndices::Ptr | PointIndicesPtr |
| typedef PointIndices::ConstPtr | PointIndicesConstPtr |
Public Member Functions | |
| OrganizedMultiPlaneSegmentation () | |
| Constructor for OrganizedMultiPlaneSegmentation. More... | |
| virtual | ~OrganizedMultiPlaneSegmentation () |
| Destructor for OrganizedMultiPlaneSegmentation. More... | |
| void | setInputNormals (const PointCloudNConstPtr &normals) |
| Provide a pointer to the input normals. More... | |
| PointCloudNConstPtr | getInputNormals () const |
| Get the input normals. More... | |
| void | setMinInliers (unsigned min_inliers) |
| Set the minimum number of inliers required for a plane. More... | |
| unsigned | getMinInliers () const |
| Get the minimum number of inliers required per plane. More... | |
| void | setAngularThreshold (double angular_threshold) |
| Set the tolerance in radians for difference in normal direction between neighboring points, to be considered part of the same plane. More... | |
| double | getAngularThreshold () const |
| Get the angular threshold in radians for difference in normal direction between neighboring points, to be considered part of the same plane. More... | |
| void | setDistanceThreshold (double distance_threshold) |
| Set the tolerance in meters for difference in perpendicular distance (d component of plane equation) to the plane between neighboring points, to be considered part of the same plane. More... | |
| double | getDistanceThreshold () const |
| Get the distance threshold in meters (d component of plane equation) between neighboring points, to be considered part of the same plane. More... | |
| void | setMaximumCurvature (double maximum_curvature) |
| Set the maximum curvature allowed for a planar region. More... | |
| double | getMaximumCurvature () const |
| Get the maximum curvature allowed for a planar region. More... | |
| void | setComparator (const PlaneComparatorPtr &compare) |
| Provide a pointer to the comparator to be used for segmentation. More... | |
| void | setRefinementComparator (const PlaneRefinementComparatorPtr &compare) |
| Provide a pointer to the comparator to be used for refinement. More... | |
| void | setProjectPoints (bool project_points) |
| Set whether or not to project boundary points to the plane, or leave them in the original 3D space. More... | |
| void | segment (std::vector< ModelCoefficients > &model_coefficients, std::vector< PointIndices > &inlier_indices, std::vector< Eigen::Vector4f, Eigen::aligned_allocator< Eigen::Vector4f > > ¢roids, std::vector< Eigen::Matrix3f, Eigen::aligned_allocator< Eigen::Matrix3f > > &covariances, pcl::PointCloud< PointLT > &labels, std::vector< pcl::PointIndices > &label_indices) |
| Segmentation of all planes in a point cloud given by setInputCloud(), setIndices() More... | |
| void | segment (std::vector< ModelCoefficients > &model_coefficients, std::vector< PointIndices > &inlier_indices) |
| Segmentation of all planes in a point cloud given by setInputCloud(), setIndices() More... | |
| void | segment (std::vector< PlanarRegion< PointT >, Eigen::aligned_allocator< PlanarRegion< PointT > > > ®ions) |
| Segmentation of all planes in a point cloud given by setInputCloud(), setIndices() More... | |
| void | segmentAndRefine (std::vector< PlanarRegion< PointT >, Eigen::aligned_allocator< PlanarRegion< PointT > > > ®ions) |
| Perform a segmentation, as well as an additional refinement step. More... | |
| void | segmentAndRefine (std::vector< PlanarRegion< PointT >, Eigen::aligned_allocator< PlanarRegion< PointT > > > ®ions, std::vector< ModelCoefficients > &model_coefficients, std::vector< PointIndices > &inlier_indices, PointCloudLPtr &labels, std::vector< pcl::PointIndices > &label_indices, std::vector< pcl::PointIndices > &boundary_indices) |
| Perform a segmentation, as well as additional refinement step. More... | |
| void | refine (std::vector< ModelCoefficients > &model_coefficients, std::vector< PointIndices > &inlier_indices, std::vector< Eigen::Vector4f, Eigen::aligned_allocator< Eigen::Vector4f > > ¢roids, std::vector< Eigen::Matrix3f, Eigen::aligned_allocator< Eigen::Matrix3f > > &covariances, PointCloudLPtr &labels, std::vector< pcl::PointIndices > &label_indices) |
| Perform a refinement of an initial segmentation, by comparing points to adjacent regions detected by the initial segmentation. More... | |
| virtual void | setInputCloud (const PointCloudConstPtr &cloud) |
| Provide a pointer to the input dataset. More... | |
| PointCloudConstPtr const | getInputCloud () |
| Get a pointer to the input point cloud dataset. More... | |
| void | setIndices (const IndicesPtr &indices) |
| Provide a pointer to the vector of indices that represents the input data. More... | |
| void | setIndices (const IndicesConstPtr &indices) |
| Provide a pointer to the vector of indices that represents the input data. More... | |
| void | setIndices (const PointIndicesConstPtr &indices) |
| Provide a pointer to the vector of indices that represents the input data. More... | |
| void | setIndices (size_t row_start, size_t col_start, size_t nb_rows, size_t nb_cols) |
| Set the indices for the points laying within an interest region of the point cloud. More... | |
| IndicesPtr const | getIndices () |
| Get a pointer to the vector of indices used. More... | |
| const PointT & | operator[] (size_t pos) |
| Override PointCloud operator[] to shorten code. More... | |
OrganizedMultiPlaneSegmentation finds all planes present in the input cloud, and outputs a vector of plane equations, as well as a vector of point clouds corresponding to the inliers of each detected plane.
Only planes with more than min_inliers points are detected. Templated on point type, normal type, and label type
Definition at line 62 of file organized_multi_plane_segmentation.h.
| typedef pcl::PlaneCoefficientComparator<PointT, PointNT> pcl::OrganizedMultiPlaneSegmentation< PointT, PointNT, PointLT >::PlaneComparator |
Definition at line 82 of file organized_multi_plane_segmentation.h.
| typedef PlaneComparator::ConstPtr pcl::OrganizedMultiPlaneSegmentation< PointT, PointNT, PointLT >::PlaneComparatorConstPtr |
Definition at line 84 of file organized_multi_plane_segmentation.h.
| typedef PlaneComparator::Ptr pcl::OrganizedMultiPlaneSegmentation< PointT, PointNT, PointLT >::PlaneComparatorPtr |
Definition at line 83 of file organized_multi_plane_segmentation.h.
| typedef pcl::PlaneRefinementComparator<PointT, PointNT, PointLT> pcl::OrganizedMultiPlaneSegmentation< PointT, PointNT, PointLT >::PlaneRefinementComparator |
Definition at line 86 of file organized_multi_plane_segmentation.h.
| typedef PlaneRefinementComparator::ConstPtr pcl::OrganizedMultiPlaneSegmentation< PointT, PointNT, PointLT >::PlaneRefinementComparatorConstPtr |
Definition at line 88 of file organized_multi_plane_segmentation.h.
| typedef PlaneRefinementComparator::Ptr pcl::OrganizedMultiPlaneSegmentation< PointT, PointNT, PointLT >::PlaneRefinementComparatorPtr |
Definition at line 87 of file organized_multi_plane_segmentation.h.
| typedef pcl::PointCloud<PointT> pcl::OrganizedMultiPlaneSegmentation< PointT, PointNT, PointLT >::PointCloud |
Definition at line 70 of file organized_multi_plane_segmentation.h.
| typedef PointCloud::ConstPtr pcl::OrganizedMultiPlaneSegmentation< PointT, PointNT, PointLT >::PointCloudConstPtr |
Definition at line 72 of file organized_multi_plane_segmentation.h.
| typedef pcl::PointCloud<PointLT> pcl::OrganizedMultiPlaneSegmentation< PointT, PointNT, PointLT >::PointCloudL |
Definition at line 78 of file organized_multi_plane_segmentation.h.
| typedef PointCloudL::ConstPtr pcl::OrganizedMultiPlaneSegmentation< PointT, PointNT, PointLT >::PointCloudLConstPtr |
Definition at line 80 of file organized_multi_plane_segmentation.h.
| typedef PointCloudL::Ptr pcl::OrganizedMultiPlaneSegmentation< PointT, PointNT, PointLT >::PointCloudLPtr |
Definition at line 79 of file organized_multi_plane_segmentation.h.
| typedef pcl::PointCloud<PointNT> pcl::OrganizedMultiPlaneSegmentation< PointT, PointNT, PointLT >::PointCloudN |
Definition at line 74 of file organized_multi_plane_segmentation.h.
| typedef PointCloudN::ConstPtr pcl::OrganizedMultiPlaneSegmentation< PointT, PointNT, PointLT >::PointCloudNConstPtr |
Definition at line 76 of file organized_multi_plane_segmentation.h.
| typedef PointCloudN::Ptr pcl::OrganizedMultiPlaneSegmentation< PointT, PointNT, PointLT >::PointCloudNPtr |
Definition at line 75 of file organized_multi_plane_segmentation.h.
| typedef PointCloud::Ptr pcl::OrganizedMultiPlaneSegmentation< PointT, PointNT, PointLT >::PointCloudPtr |
Definition at line 71 of file organized_multi_plane_segmentation.h.
|
inherited |
Definition at line 79 of file pcl_base.h.
|
inherited |
Definition at line 78 of file pcl_base.h.
|
inline |
Constructor for OrganizedMultiPlaneSegmentation.
Definition at line 91 of file organized_multi_plane_segmentation.h.
|
inlinevirtual |
Destructor for OrganizedMultiPlaneSegmentation.
Definition at line 104 of file organized_multi_plane_segmentation.h.
|
inline |
Get the angular threshold in radians for difference in normal direction between neighboring points, to be considered part of the same plane.
Definition at line 151 of file organized_multi_plane_segmentation.h.
|
inline |
Get the distance threshold in meters (d component of plane equation) between neighboring points, to be considered part of the same plane.
Definition at line 167 of file organized_multi_plane_segmentation.h.
|
inlineinherited |
Get a pointer to the vector of indices used.
Definition at line 190 of file pcl_base.h.
|
inlineinherited |
Get a pointer to the input point cloud dataset.
Definition at line 107 of file pcl_base.h.
|
inline |
Get the input normals.
Definition at line 119 of file organized_multi_plane_segmentation.h.
|
inline |
Get the maximum curvature allowed for a planar region.
Definition at line 183 of file organized_multi_plane_segmentation.h.
|
inline |
Get the minimum number of inliers required per plane.
Definition at line 135 of file organized_multi_plane_segmentation.h.
|
inlineinherited |
Override PointCloud operator[] to shorten code.
| pos | position in indices_ vector |
Definition at line 197 of file pcl_base.h.
| void pcl::OrganizedMultiPlaneSegmentation< PointT, PointNT, PointLT >::refine | ( | std::vector< ModelCoefficients > & | model_coefficients, |
| std::vector< PointIndices > & | inlier_indices, | ||
| std::vector< Eigen::Vector4f, Eigen::aligned_allocator< Eigen::Vector4f > > & | centroids, | ||
| std::vector< Eigen::Matrix3f, Eigen::aligned_allocator< Eigen::Matrix3f > > & | covariances, | ||
| PointCloudLPtr & | labels, | ||
| std::vector< pcl::PointIndices > & | label_indices | ||
| ) |
Perform a refinement of an initial segmentation, by comparing points to adjacent regions detected by the initial segmentation.
| [in] | model_coefficients | The list of segmented model coefficients |
| [in] | inlier_indices | The list of segmented inlier indices, corresponding to each model |
| [in] | centroids | The list of centroids corresponding to each segmented plane |
| [in] | covariances | The list of covariances corresponding to each segemented plane |
| [in] | labels | The labels produced by the initial segmentation |
| [in] | label_indices | The list of indices corresponding to each label |
Definition at line 319 of file organized_multi_plane_segmentation.hpp.
| void pcl::OrganizedMultiPlaneSegmentation< PointT, PointNT, PointLT >::segment | ( | std::vector< ModelCoefficients > & | model_coefficients, |
| std::vector< PointIndices > & | inlier_indices, | ||
| std::vector< Eigen::Vector4f, Eigen::aligned_allocator< Eigen::Vector4f > > & | centroids, | ||
| std::vector< Eigen::Matrix3f, Eigen::aligned_allocator< Eigen::Matrix3f > > & | covariances, | ||
| pcl::PointCloud< PointLT > & | labels, | ||
| std::vector< pcl::PointIndices > & | label_indices | ||
| ) |
Segmentation of all planes in a point cloud given by setInputCloud(), setIndices()
| [out] | model_coefficients | a vector of model_coefficients for each plane found in the input cloud |
| [out] | inlier_indices | a vector of inliers for each detected plane |
| [out] | centroids | a vector of centroids for each plane |
| [out] | covariances | a vector of covariance matricies for the inliers of each plane |
| [out] | labels | a point cloud for the connected component labels of each pixel |
| [out] | label_indices | a vector of PointIndices for each labeled component |
Definition at line 90 of file organized_multi_plane_segmentation.hpp.
| void pcl::OrganizedMultiPlaneSegmentation< PointT, PointNT, PointLT >::segment | ( | std::vector< ModelCoefficients > & | model_coefficients, |
| std::vector< PointIndices > & | inlier_indices | ||
| ) |
Segmentation of all planes in a point cloud given by setInputCloud(), setIndices()
| [out] | model_coefficients | a vector of model_coefficients for each plane found in the input cloud |
| [out] | inlier_indices | a vector of inliers for each detected plane |
Definition at line 78 of file organized_multi_plane_segmentation.hpp.
| void pcl::OrganizedMultiPlaneSegmentation< PointT, PointNT, PointLT >::segment | ( | std::vector< PlanarRegion< PointT >, Eigen::aligned_allocator< PlanarRegion< PointT > > > & | regions | ) |
Segmentation of all planes in a point cloud given by setInputCloud(), setIndices()
| [out] | regions | a list of resultant planar polygonal regions |
Definition at line 194 of file organized_multi_plane_segmentation.hpp.
| void pcl::OrganizedMultiPlaneSegmentation< PointT, PointNT, PointLT >::segmentAndRefine | ( | std::vector< PlanarRegion< PointT >, Eigen::aligned_allocator< PlanarRegion< PointT > > > & | regions | ) |
Perform a segmentation, as well as an additional refinement step.
This helps with including points whose normals may not match neighboring points well, but may match the planar model well.
| [out] | regions | A list of regions generated by segmentation and refinement. |
Definition at line 231 of file organized_multi_plane_segmentation.hpp.
| void pcl::OrganizedMultiPlaneSegmentation< PointT, PointNT, PointLT >::segmentAndRefine | ( | std::vector< PlanarRegion< PointT >, Eigen::aligned_allocator< PlanarRegion< PointT > > > & | regions, |
| std::vector< ModelCoefficients > & | model_coefficients, | ||
| std::vector< PointIndices > & | inlier_indices, | ||
| PointCloudLPtr & | labels, | ||
| std::vector< pcl::PointIndices > & | label_indices, | ||
| std::vector< pcl::PointIndices > & | boundary_indices | ||
| ) |
Perform a segmentation, as well as additional refinement step.
Returns intermediate data structures for use in subsequent processing.
| [out] | regions | A vector of PlanarRegions generated by segmentation |
| [out] | model_coefficients | A vector of model coefficients for each segmented plane |
| [out] | inlier_indices | A vector of PointIndices, indicating the inliers to each segmented plane |
| [out] | labels | A PointCloud<PointLT> corresponding to the resulting segmentation. |
| [out] | label_indices | A vector of PointIndices for each label |
| [out] | boundary_indices | A vector of PointIndices corresponding to the outer boundary / contour of each label |
Definition at line 275 of file organized_multi_plane_segmentation.hpp.
|
inline |
Set the tolerance in radians for difference in normal direction between neighboring points, to be considered part of the same plane.
| [in] | angular_threshold | the tolerance in radians |
Definition at line 144 of file organized_multi_plane_segmentation.h.
|
inline |
Provide a pointer to the comparator to be used for segmentation.
| [in] | compare | A pointer to the comparator to be used for segmentation. |
Definition at line 192 of file organized_multi_plane_segmentation.h.
|
inline |
Set the tolerance in meters for difference in perpendicular distance (d component of plane equation) to the plane between neighboring points, to be considered part of the same plane.
| [in] | distance_threshold | the tolerance in meters |
Definition at line 160 of file organized_multi_plane_segmentation.h.
|
inlineinherited |
Provide a pointer to the vector of indices that represents the input data.
| indices | a pointer to the vector of indices that represents the input data. |
Definition at line 113 of file pcl_base.h.
|
inlineinherited |
Provide a pointer to the vector of indices that represents the input data.
| indices | a pointer to the vector of indices that represents the input data. |
Definition at line 124 of file pcl_base.h.
|
inlineinherited |
Provide a pointer to the vector of indices that represents the input data.
| indices | a pointer to the vector of indices that represents the input data. |
Definition at line 135 of file pcl_base.h.
|
inlineinherited |
Set the indices for the points laying within an interest region of the point cloud.
| row_start | the offset on rows |
| col_start | the offset on columns |
| nb_rows | the number of rows to be considered row_start included |
| nb_cols | the number of columns to be considered col_start included |
Definition at line 151 of file pcl_base.h.
|
inlinevirtualinherited |
Provide a pointer to the input dataset.
| cloud | the const boost shared pointer to a PointCloud message |
Reimplemented in pcl::PCA< PointT >.
Definition at line 103 of file pcl_base.h.
|
inline |
Provide a pointer to the input normals.
| [in] | normals | the input normal cloud |
Definition at line 112 of file organized_multi_plane_segmentation.h.
|
inline |
Set the maximum curvature allowed for a planar region.
| [in] | maximum_curvature | the maximum curvature |
Definition at line 176 of file organized_multi_plane_segmentation.h.
|
inline |
Set the minimum number of inliers required for a plane.
| [in] | min_inliers | the minimum number of inliers required per plane |
Definition at line 128 of file organized_multi_plane_segmentation.h.
|
inline |
Set whether or not to project boundary points to the plane, or leave them in the original 3D space.
| [in] | project_points | true if points should be projected, false if not. |
Definition at line 210 of file organized_multi_plane_segmentation.h.
|
inline |
Provide a pointer to the comparator to be used for refinement.
| [in] | compare | A pointer to the comparator to be used for refinement. |
Definition at line 201 of file organized_multi_plane_segmentation.h.
1.8.3.1