Point Cloud Library (PCL)
1.9.1
|
40 #ifndef PCL_SEGMENTATION_ORGANIZED_MULTI_PLANE_SEGMENTATION_H_
41 #define PCL_SEGMENTATION_ORGANIZED_MULTI_PLANE_SEGMENTATION_H_
43 #include <pcl/segmentation/planar_region.h>
44 #include <pcl/pcl_base.h>
46 #include <pcl/PointIndices.h>
47 #include <pcl/ModelCoefficients.h>
48 #include <pcl/segmentation/plane_coefficient_comparator.h>
49 #include <pcl/segmentation/plane_refinement_comparator.h>
61 template<
typename Po
intT,
typename Po
intNT,
typename Po
intLT>
224 segment (std::vector<ModelCoefficients>& model_coefficients,
225 std::vector<PointIndices>& inlier_indices,
226 std::vector<Eigen::Vector4f, Eigen::aligned_allocator<Eigen::Vector4f> >& centroids,
227 std::vector <Eigen::Matrix3f, Eigen::aligned_allocator<Eigen::Matrix3f> >& covariances,
229 std::vector<pcl::PointIndices>& label_indices);
236 segment (std::vector<ModelCoefficients>& model_coefficients,
237 std::vector<PointIndices>& inlier_indices);
262 std::vector<ModelCoefficients>& model_coefficients,
263 std::vector<PointIndices>& inlier_indices,
265 std::vector<pcl::PointIndices>& label_indices,
266 std::vector<pcl::PointIndices>& boundary_indices);
277 refine (std::vector<ModelCoefficients>& model_coefficients,
278 std::vector<PointIndices>& inlier_indices,
279 std::vector<Eigen::Vector4f, Eigen::aligned_allocator<Eigen::Vector4f> >& centroids,
280 std::vector <Eigen::Matrix3f, Eigen::aligned_allocator<Eigen::Matrix3f> >& covariances,
282 std::vector<pcl::PointIndices>& label_indices);
314 return (
"OrganizedMultiPlaneSegmentation");
320 #ifdef PCL_NO_PRECOMPILE
321 #include <pcl/segmentation/impl/organized_multi_plane_segmentation.hpp>
324 #endif //#ifndef PCL_SEGMENTATION_ORGANIZED_MULTI_PLANE_SEGMENTATION_H_
This file defines compatibility wrappers for low level I/O functions.
virtual ~OrganizedMultiPlaneSegmentation()
Destructor for OrganizedMultiPlaneSegmentation.
boost::shared_ptr< PointCloud< pcl::PointXYZRGBA > > Ptr
PointCloudN::ConstPtr PointCloudNConstPtr
void setAngularThreshold(double angular_threshold)
Set the tolerance in radians for difference in normal direction between neighboring points,...
boost::shared_ptr< PlaneCoefficientComparator< PointT, PointNT > > Ptr
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 ...
void setRefinementComparator(const PlaneRefinementComparatorPtr &compare)
Provide a pointer to the comparator to be used for refinement.
OrganizedMultiPlaneSegmentation()
Constructor for OrganizedMultiPlaneSegmentation.
boost::shared_ptr< const PlaneRefinementComparator< PointT, PointNT, PointLT > > ConstPtr
PlaneComparatorPtr compare_
A comparator for comparing neighboring pixels' plane equations.
void setMinInliers(unsigned min_inliers)
Set the minimum number of inliers required for a plane.
PlaneRefinementComparatorPtr refinement_compare_
A comparator for use on the refinement step.
virtual std::string getClassName() const
Class getName method.
PointCloud represents the base class in PCL for storing collections of 3D points.
double getDistanceThreshold() const
Get the distance threshold in meters (d component of plane equation) between neighboring points,...
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()
PointCloud::Ptr PointCloudPtr
void setInputNormals(const PointCloudNConstPtr &normals)
Provide a pointer to the input normals.
void segmentAndRefine(std::vector< PlanarRegion< PointT >, Eigen::aligned_allocator< PlanarRegion< PointT > > > ®ions)
Perform a segmentation, as well as an additional refinement step.
void setComparator(const PlaneComparatorPtr &compare)
Provide a pointer to the comparator to be used for segmentation.
OrganizedMultiPlaneSegmentation finds all planes present in the input cloud, and outputs a vector of ...
PointCloudL::Ptr PointCloudLPtr
PointCloudL::ConstPtr PointCloudLConstPtr
PointCloudNConstPtr getInputNormals() const
Get the input normals.
PlaneRefinementComparator::Ptr PlaneRefinementComparatorPtr
unsigned min_inliers_
The minimum number of inliers required for each plane.
double maximum_curvature_
The tolerance for maximum curvature after fitting a plane.
PlaneRefinementComparator::ConstPtr PlaneRefinementComparatorConstPtr
pcl::PointCloud< PointT > PointCloud
pcl::PlaneCoefficientComparator< PointT, PointNT > PlaneComparator
float deg2rad(float alpha)
Convert an angle from degrees to radians.
pcl::PointCloud< PointNT > PointCloudN
unsigned getMinInliers() const
Get the minimum number of inliers required per plane.
PlaneComparator::Ptr PlaneComparatorPtr
bool project_points_
Whether or not points should be projected to the plane, or left in the original 3D space.
PlanarRegion represents a set of points that lie in a plane.
pcl::PointCloud< PointLT > PointCloudL
double getAngularThreshold() const
Get the angular threshold in radians for difference in normal direction between neighboring points,...
boost::shared_ptr< const PlaneCoefficientComparator< PointT, PointNT > > ConstPtr
void setMaximumCurvature(double maximum_curvature)
Set the maximum curvature allowed for a planar region.
double angular_threshold_
The tolerance in radians for difference in normal direction between neighboring points,...
boost::shared_ptr< const PointCloud< pcl::PointXYZRGBA > > ConstPtr
void setProjectPoints(bool project_points)
Set whether or not to project boundary points to the plane, or leave them in the original 3D space.
PlaneComparator::ConstPtr PlaneComparatorConstPtr
PointCloudNConstPtr normals_
A pointer to the input normals.
pcl::PlaneRefinementComparator< PointT, PointNT, PointLT > PlaneRefinementComparator
PlaneRefinementComparator is a Comparator that operates on plane coefficients, for use in planar segm...
double distance_threshold_
The tolerance in meters for difference in perpendicular distance (d component of plane equation) to t...
double getMaximumCurvature() const
Get the maximum curvature allowed for a planar region.
boost::shared_ptr< PlaneRefinementComparator< PointT, PointNT, PointLT > > Ptr
void setDistanceThreshold(double distance_threshold)
Set the tolerance in meters for difference in perpendicular distance (d component of plane equation) ...
PointCloud::ConstPtr PointCloudConstPtr
PointCloudN::Ptr PointCloudNPtr
PlaneCoefficientComparator is a Comparator that operates on plane coefficients, for use in planar seg...