Point Cloud Library (PCL)
1.9.1
|
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 |
![]() | |
typedef PCLBase< PointInT > | BaseClass |
typedef boost::shared_ptr< Feature< PointInT, PointOutT > > | Ptr |
typedef boost::shared_ptr< const Feature< PointInT, PointOutT > > | ConstPtr |
typedef pcl::search::Search< PointInT > | KdTree |
typedef pcl::search::Search< PointInT >::Ptr | KdTreePtr |
typedef pcl::PointCloud< PointInT > | PointCloudIn |
typedef PointCloudIn::Ptr | PointCloudInPtr |
typedef PointCloudIn::ConstPtr | PointCloudInConstPtr |
typedef pcl::PointCloud< PointOutT > | PointCloudOut |
typedef boost::function< int(size_t, double, std::vector< int > &, std::vector< float > &)> | SearchMethod |
typedef boost::function< int(const PointCloudIn &cloud, size_t index, double, std::vector< int > &, std::vector< float > &)> | SearchMethodSurface |
![]() | |
typedef pcl::PointCloud< PointInT > | PointCloud |
typedef PointCloud::Ptr | PointCloudPtr |
typedef PointCloud::ConstPtr | PointCloudConstPtr |
typedef boost::shared_ptr< PointIndices > | PointIndicesPtr |
typedef boost::shared_ptr< PointIndices const > | PointIndicesConstPtr |
Public Member Functions | |
DifferenceOfNormalsEstimation () | |
Creates a new Difference of Normals filter. More... | |
virtual | ~DifferenceOfNormalsEstimation () |
void | setNormalScaleSmall (const PointCloudNConstPtr &normals) |
Set the normals calculated using a smaller search radius (scale) for the DoN operator. More... | |
void | setNormalScaleLarge (const PointCloudNConstPtr &normals) |
Set the normals calculated using a larger search radius (scale) for the DoN operator. More... | |
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. More... | |
virtual bool | initCompute () |
Initialize for computation of features. More... | |
![]() | |
Feature () | |
Empty constructor. More... | |
virtual | ~Feature () |
Empty destructor. More... | |
void | setSearchSurface (const PointCloudInConstPtr &cloud) |
Provide a pointer to a dataset to add additional information to estimate the features for every point in the input dataset. More... | |
PointCloudInConstPtr | getSearchSurface () const |
Get a pointer to the surface point cloud dataset. More... | |
void | setSearchMethod (const KdTreePtr &tree) |
Provide a pointer to the search object. More... | |
KdTreePtr | getSearchMethod () const |
Get a pointer to the search method used. More... | |
double | getSearchParameter () const |
Get the internal search parameter. More... | |
void | setKSearch (int k) |
Set the number of k nearest neighbors to use for the feature estimation. More... | |
int | getKSearch () const |
get the number of k nearest neighbors used for the feature estimation. More... | |
void | setRadiusSearch (double radius) |
Set the sphere radius that is to be used for determining the nearest neighbors used for the feature estimation. More... | |
double | getRadiusSearch () const |
Get the sphere radius used for determining the neighbors. More... | |
void | compute (PointCloudOut &output) |
Base method for feature estimation for all points given in <setInputCloud (), setIndices ()> using the surface in setSearchSurface () and the spatial locator in setSearchMethod () More... | |
![]() | |
PCLBase () | |
Empty constructor. More... | |
PCLBase (const PCLBase &base) | |
Copy constructor. More... | |
virtual | ~PCLBase () |
Destructor. More... | |
virtual void | setInputCloud (const PointCloudConstPtr &cloud) |
Provide a pointer to the input dataset. More... | |
PointCloudConstPtr const | getInputCloud () const |
Get a pointer to the input point cloud dataset. More... | |
virtual void | setIndices (const IndicesPtr &indices) |
Provide a pointer to the vector of indices that represents the input data. More... | |
virtual void | setIndices (const IndicesConstPtr &indices) |
Provide a pointer to the vector of indices that represents the input data. More... | |
virtual void | setIndices (const PointIndicesConstPtr &indices) |
Provide a pointer to the vector of indices that represents the input data. More... | |
virtual void | setIndices (size_t row_start, size_t col_start, size_t nb_rows, size_t nb_cols) |
Set the indices for the points laying within an interest region of the point cloud. More... | |
IndicesPtr const | getIndices () |
Get a pointer to the vector of indices used. More... | |
IndicesConstPtr const | getIndices () const |
Get a pointer to the vector of indices used. More... | |
const PointInT & | operator[] (size_t pos) const |
Override PointCloud operator[] to shorten code. More... | |
Additional Inherited Members | |
![]() | |
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 (size_t index, double parameter, std::vector< int > &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, size_t index, double parameter, std::vector< int > &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... | |
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 |
typedef boost::shared_ptr<DifferenceOfNormalsEstimation<PointInT, PointNT, PointOutT> > pcl::DifferenceOfNormalsEstimation< PointInT, PointNT, PointOutT >::Ptr |
|
inline |
Creates a new Difference of Normals filter.
Definition at line 84 of file don.h.
References pcl::Feature< PointInT, PointOutT >::feature_name_.
|
inlinevirtual |
|
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.
Referenced by pcl::DifferenceOfNormalsEstimation< PointInT, PointNT, PointOutT >::setNormalScaleLarge().
|
virtual |
Initialize for computation of features.
Reimplemented from pcl::Feature< PointInT, PointOutT >.
Definition at line 44 of file don.hpp.
Referenced by pcl::DifferenceOfNormalsEstimation< PointInT, PointNT, PointOutT >::setNormalScaleLarge().
|
inline |
Set the normals calculated using a larger search radius (scale) for the DoN operator.
normals | the larger radius (scale) of the DoN filter. |
Definition at line 109 of file don.h.
References pcl::DifferenceOfNormalsEstimation< PointInT, PointNT, PointOutT >::computeFeature(), and pcl::DifferenceOfNormalsEstimation< PointInT, PointNT, PointOutT >::initCompute().
|
inline |