Point Cloud Library (PCL)
1.7.0
|
A Difference of Normals (DoN) scale filter implementation for point cloud data. More...
#include <pcl/features/don.h>
Public Types | |
typedef boost::shared_ptr < DifferenceOfNormalsEstimation < PointInT, PointNT, PointOutT > > | Ptr |
typedef boost::shared_ptr < const DifferenceOfNormalsEstimation < PointInT, PointNT, PointOutT > > | ConstPtr |
Public Member Functions | |
DifferenceOfNormalsEstimation () | |
Creates a new Difference of Normals filter. | |
virtual | ~DifferenceOfNormalsEstimation () |
void | setNormalScaleSmall (const PointCloudNConstPtr &normals) |
Set the normals calculated using a smaller search radius (scale) for the DoN operator. | |
void | setNormalScaleLarge (const PointCloudNConstPtr &normals) |
Set the normals calculated using a larger search radius (scale) for the DoN operator. | |
virtual void | computeFeature (PointCloudOut &output) |
Computes the DoN vector for each point in the input point cloud and outputs the vector cloud to the given output. | |
virtual bool | initCompute () |
Initialize for computation of features. |
A Difference of Normals (DoN) scale filter implementation for point cloud data.
For each point in the point cloud two normals estimated with a differing search radius (sigma_s, sigma_l) are subtracted, the difference of these normals provides a scale-based feature which can be further used to filter the point cloud, somewhat like the Difference of Guassians in image processing, but instead on surfaces. Best results are had when the two search radii are related as sigma_l=10*sigma_s, the octaves between the two search radii can be though of as a filter bandwidth. For appropriate values and thresholds it can be used for surface edge extraction.
typedef boost::shared_ptr<const DifferenceOfNormalsEstimation<PointInT, PointNT, PointOutT> > pcl::DifferenceOfNormalsEstimation< PointInT, PointNT, PointOutT >::ConstPtr |
Reimplemented from pcl::Feature< PointInT, PointOutT >.
typedef boost::shared_ptr<DifferenceOfNormalsEstimation<PointInT, PointNT, PointOutT> > pcl::DifferenceOfNormalsEstimation< PointInT, PointNT, PointOutT >::Ptr |
Reimplemented from pcl::Feature< PointInT, PointOutT >.
pcl::DifferenceOfNormalsEstimation< PointInT, PointNT, PointOutT >::DifferenceOfNormalsEstimation | ( | ) | [inline] |
Creates a new Difference of Normals filter.
Definition at line 84 of file don.h.
References pcl::Feature< PointInT, PointOutT >::feature_name_.
virtual pcl::DifferenceOfNormalsEstimation< PointInT, PointNT, PointOutT >::~DifferenceOfNormalsEstimation | ( | ) | [inline, virtual] |
void pcl::DifferenceOfNormalsEstimation< PointInT, PointNT, PointOutT >::computeFeature | ( | PointCloudOut & | output | ) | [virtual] |
Computes the DoN vector for each point in the input point cloud and outputs the vector cloud to the given output.
output | the cloud to output the DoN vector cloud to. |
Implements pcl::Feature< PointInT, PointOutT >.
Definition at line 85 of file don.hpp.
References pcl::PointCloud< PointT >::points.
bool pcl::DifferenceOfNormalsEstimation< PointInT, PointNT, PointOutT >::initCompute | ( | ) | [virtual] |
Initialize for computation of features.
Reimplemented from pcl::Feature< PointInT, PointOutT >.
void pcl::DifferenceOfNormalsEstimation< PointInT, PointNT, PointOutT >::setNormalScaleLarge | ( | const PointCloudNConstPtr & | normals | ) | [inline] |
void pcl::DifferenceOfNormalsEstimation< PointInT, PointNT, PointOutT >::setNormalScaleSmall | ( | const PointCloudNConstPtr & | normals | ) | [inline] |