Spec-Zone.ru › PointCloudLibrary
A Difference of Normals (DoN) scale filter implementation for point cloud data. More...
#include <pcl/features/don.h >
using
Ptr = shared_ptr< DifferenceOfNormalsEstimation < PointInT, PointNT, PointOutT > >
using
ConstPtr = shared_ptr< const DifferenceOfNormalsEstimation < PointInT, PointNT, PointOutT > >
using
BaseClass = PCLBase < PointInT >
using
Ptr = shared_ptr< Feature < PointInT, PointOutT > >
using
ConstPtr = shared_ptr< const Feature < PointInT, PointOutT > >
using
KdTree = pcl::search::Search < PointInT >
using
KdTreePtr = typename KdTree::Ptr
using
PointCloudIn = pcl::PointCloud < PointInT >
using
PointCloudInPtr = typename PointCloudIn::Ptr
using
PointCloudInConstPtr = typename PointCloudIn::ConstPtr
using
PointCloudOut = pcl::PointCloud < PointOutT >
using
SearchMethod = std::function< int(std::size_t, double, pcl::Indices &, std::vector< float > &)>
using
SearchMethodSurface = std::function< int(const PointCloudIn &cloud, std::size_t index, double, pcl::Indices &, std::vector< float > &)>
using
PointCloud = pcl::PointCloud < PointInT >
using
PointCloudPtr = typename PointCloud::Ptr
using
PointCloudConstPtr = typename PointCloud::ConstPtr
using
PointIndicesPtr = PointIndices::Ptr
using
PointIndicesConstPtr = PointIndices::ConstPtr
const std::string &
getClassName () const
Get a string representation of the name of this class. More...
virtual bool
deinitCompute ()
This method should get called after ending the actual computation. More...
int
searchForNeighbors (std::size_t index, double parameter, pcl::Indices &indices, std::vector< float > &distances) const
Search for k-nearest neighbors using the spatial locator from setSearchmethod , and the given surface from setSearchSurface . More...
int
searchForNeighbors (const PointCloudIn &cloud, std::size_t index, double parameter, pcl::Indices &indices, std::vector< float > &distances) const
Search for k-nearest neighbors using the spatial locator from setSearchmethod , and the given surface from setSearchSurface . More...
bool
initCompute ()
This method should get called before starting the actual computation. More...
bool
deinitCompute ()
This method should get called after finishing the actual computation. More...
std::string
feature_name_
The feature name. More...
SearchMethodSurface
search_method_surface_
The search method template for points. More...
PointCloudInConstPtr
surface_
An input point cloud describing the surface that is to be used for nearest neighbors estimation. More...
KdTreePtr
tree_
A pointer to the spatial search object. More...
double
search_parameter_
The actual search parameter (from either search_radius_ or k_ ). More...
double
search_radius_
The nearest neighbors search radius for each point. More...
int
k_
The number of K nearest neighbors to use for each point. More...
bool
fake_surface_
If no surface is given, we use the input PointCloud as the surface. More...
PointCloudConstPtr
input_
The input point cloud dataset. More...
IndicesPtr
indices_
A pointer to the vector of point indices to use. More...
bool
use_indices_
Set to true if point indices are used. More...
bool
fake_indices_
If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. More...
template<typename PointInT, typename PointNT, typename PointOutT> class pcl::DifferenceOfNormalsEstimation< PointInT, PointNT, PointOutT > 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.
Attention
The input normals given by setInputNormalsSmall and setInputNormalsLarge have to match the input point cloud given by setInputCloud. This behavior is different than feature estimation methods that extend FeatureFromNormals , which match the normals with the search surface.
Note
For more information please see Yani Ioannou. Automatic Urban Modelling using Mobile Urban LIDAR Data. Thesis (Master, Computing), Queen's University, March, 2010.
Author
Yani Ioannou.
Definition at line 68 of file don.h .
ConstPtr template<typename PointInT , typename PointNT , typename PointOutT >
Definition at line 79 of file don.h .
Ptr template<typename PointInT , typename PointNT , typename PointOutT >
Definition at line 78 of file don.h .
DifferenceOfNormalsEstimation() template<typename PointInT , typename PointNT , typename PointOutT >
~DifferenceOfNormalsEstimation() template<typename PointInT , typename PointNT , typename PointOutT >
computeFeature() template<typename PointInT , typename PointNT , typename PointOutT >
Computes the DoN vector for each point in the input point cloud and outputs the vector cloud to the given output.
Parameters
output
the cloud to output the DoN vector cloud to.
Implements pcl::Feature< PointInT, PointOutT > .
Definition at line 85 of file don.hpp .
initCompute() template<typename PointInT , typename PointNT , typename PointOutT >
Initialize for computation of features.
Returns
true if parameters (input normals, input) are sufficient to perform computation.
Reimplemented from pcl::Feature< PointInT, PointOutT > .
Definition at line 44 of file don.hpp .
setNormalScaleLarge() template<typename PointInT , typename PointNT , typename PointOutT >
Set the normals calculated using a larger search radius (scale) for the DoN operator.
Parameters
normals
the larger radius (scale) of the DoN filter.
Definition at line 106 of file don.h .
setNormalScaleSmall() template<typename PointInT , typename PointNT , typename PointOutT >
Set the normals calculated using a smaller search radius (scale) for the DoN operator.
Parameters
normals
the smaller radius (scale) of the DoN filter.
Definition at line 96 of file don.h .
The documentation for this class was generated from the following files: