Point Cloud Library (PCL)
1.11.1-dev
|
42 #include <pcl/segmentation/boost.h>
43 #include <pcl/segmentation/plane_coefficient_comparator.h>
53 template<
typename Po
intT,
typename Po
intNT>
64 using Ptr = shared_ptr<EdgeAwarePlaneComparator<PointT, PointNT> >;
65 using ConstPtr = shared_ptr<const EdgeAwarePlaneComparator<PointT, PointNT> >;
182 Eigen::Vector3f vec = (*input_)[idx1].getVector3fMap ();
184 dist_threshold *= z * z;
185 euclidean_dist_threshold *= z * z;
188 float dx = (*input_)[idx1].x - (*input_)[idx2].x;
189 float dy = (*input_)[idx1].y - (*input_)[idx2].y;
190 float dz = (*input_)[idx1].z - (*input_)[idx2].z;
191 float dist = std::sqrt (dx*dx + dy*dy + dz*dz);
193 bool normal_ok = ((*normals_)[idx1].getNormalVector3fMap ().dot ((*
normals_)[idx2].getNormalVector3fMap () ) >
angular_threshold_ );
194 bool dist_ok = (dist < euclidean_dist_threshold);
200 curvature_ok =
false;
202 return (dist_ok && normal_ok && curvature_ok && plane_d_ok);
EdgeAwarePlaneComparator(const float *distance_map)
Empty constructor for PlaneCoefficientComparator.
void setDistanceMap(const float *distance_map)
Set a distance map to use.
float curvature_threshold_
typename PointCloudN::Ptr PointCloudNPtr
EdgeAwarePlaneComparator()
Empty constructor for PlaneCoefficientComparator.
const float * getDistanceMap() const
Return the distance map used.
float getCurvatureThreshold() const
Get the curvature threshold.
bool compare(int idx1, int idx2) const override
Compare two neighboring points, by using normal information, curvature, and euclidean distance inform...
PointCloud represents the base class in PCL for storing collections of 3D points.
shared_ptr< std::vector< float > > plane_coeff_d_
shared_ptr< const Comparator< PointT > > ConstPtr
void setDistanceMapThreshold(float distance_map_threshold)
Set the distance map threshold – the number of pixel away from a border / nan.
float distance_threshold_
int distance_map_threshold_
PointCloudNConstPtr normals_
~EdgeAwarePlaneComparator()
Destructor for PlaneCoefficientComparator.
EdgeAwarePlaneComparator is a Comparator that operates on plane coefficients, for use in planar segme...
const float * distance_map_
typename PointCloudN::ConstPtr PointCloudNConstPtr
void setEuclideanDistanceThreshold(float euclidean_distance_threshold)
Set the euclidean distance threshold.
typename PointCloud::ConstPtr PointCloudConstPtr
shared_ptr< PointCloud< PointNT > > Ptr
void setCurvatureThreshold(float curvature_threshold)
Set the curvature threshold for creating a new segment.
shared_ptr< const PointCloud< PointNT > > ConstPtr
float getDistanceMapThreshold() const
Get the distance map threshold (in pixels).
float getEuclideanDistanceThreshold() const
Get the euclidean distance threshold.
float euclidean_distance_threshold_
shared_ptr< Comparator< PointT > > Ptr
PlaneCoefficientComparator is a Comparator that operates on plane coefficients, for use in planar seg...