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_ boost::shared_ptr< PlaneCoefficientComparator< PointT, PointNT > > Ptr
float deg2rad(float alpha)
Convert an angle from degrees to radians.
pcl::PlaneCoefficientComparator< PointT, PointNT > PlaneComparator
boost::shared_ptr< const PlaneCoefficientComparator< PointT, PointNT > > ConstPtr
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()
void setMaximumCurvature(double maximum_curvature)
Set the maximum curvature allowed for a planar region.
boost::shared_ptr< const PlaneRefinementComparator< PointT, PointNT, PointLT > > ConstPtr
void setMinInliers(unsigned min_inliers)
Set the minimum number of inliers required for a plane.
void segmentAndRefine(std::vector< PlanarRegion< PointT >, Eigen::aligned_allocator< PlanarRegion< PointT > > > ®ions)
Perform a segmentation, as well as an additional refinement step.
PlaneRefinementComparatorPtr refinement_compare_
A comparator for use on the refinement step.
virtual ~OrganizedMultiPlaneSegmentation()
Destructor for OrganizedMultiPlaneSegmentation.
PointCloudNConstPtr getInputNormals() const
Get the input normals.
This file defines compatibility wrappers for low level I/O functions.
PointCloudN::ConstPtr PointCloudNConstPtr
unsigned getMinInliers() const
Get the minimum number of inliers required per plane.
PlaneRefinementComparator::ConstPtr PlaneRefinementComparatorConstPtr
boost::shared_ptr< PointCloud< pcl::PointXYZRGBA > > Ptr
PointCloud::ConstPtr PointCloudConstPtr
PlaneComparatorPtr compare_
A comparator for comparing neighboring pixels' plane equations.
OrganizedMultiPlaneSegmentation()
Constructor for OrganizedMultiPlaneSegmentation.
boost::shared_ptr< PlaneRefinementComparator< PointT, PointNT, PointLT > > Ptr
virtual std::string getClassName() const
Class getName method.
pcl::PointCloud< PointNT > PointCloudN
void setRefinementComparator(const PlaneRefinementComparatorPtr &compare)
Provide a pointer to the comparator to be used for refinement.
void setDistanceThreshold(double distance_threshold)
Set the tolerance in meters for difference in perpendicular distance (d component of plane equation) ...
double distance_threshold_
The tolerance in meters for difference in perpendicular distance (d component of plane equation) to t...
pcl::PointCloud< PointLT > PointCloudL
PointCloudL::ConstPtr PointCloudLConstPtr
PointCloudNConstPtr normals_
A pointer to the input normals.
void setAngularThreshold(double angular_threshold)
Set the tolerance in radians for difference in normal direction between neighboring points,...
PointCloudL::Ptr PointCloudLPtr
boost::shared_ptr< const PointCloud< pcl::PointXYZRGBA > > ConstPtr
PlaneCoefficientComparator is a Comparator that operates on plane coefficients, for use in planar seg...
unsigned min_inliers_
The minimum number of inliers required for each plane.
PointCloud represents the base class in PCL for storing collections of 3D points.
OrganizedMultiPlaneSegmentation finds all planes present in the input cloud, and outputs a vector of ...
double angular_threshold_
The tolerance in radians for difference in normal direction between neighboring points,...
double maximum_curvature_
The tolerance for maximum curvature after fitting a plane.
PlaneRefinementComparator::Ptr PlaneRefinementComparatorPtr
PlaneRefinementComparator is a Comparator that operates on plane coefficients, for use in planar segm...
PlaneComparator::ConstPtr PlaneComparatorConstPtr
pcl::PointCloud< PointT > PointCloud
PointCloud::Ptr PointCloudPtr
double getDistanceThreshold() const
Get the distance threshold in meters (d component of plane equation) between neighboring points,...
void setInputNormals(const PointCloudNConstPtr &normals)
Provide a pointer to the input normals.
double getAngularThreshold() const
Get the angular threshold in radians for difference in normal direction between neighboring points,...
Define standard C methods to do angle calculations.
void setComparator(const PlaneComparatorPtr &compare)
Provide a pointer to the comparator to be used for segmentation.
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 ...
PlanarRegion represents a set of points that lie in a plane.
PointCloudN::Ptr PointCloudNPtr
double getMaximumCurvature() const
Get the maximum curvature allowed for a planar region.
PlaneComparator::Ptr PlaneComparatorPtr
void setProjectPoints(bool project_points)
Set whether or not to project boundary points to the plane, or leave them in the original 3D space.
bool project_points_
Whether or not points should be projected to the plane, or left in the original 3D space.
pcl::PlaneRefinementComparator< PointT, PointNT, PointLT > PlaneRefinementComparator