Go to the documentation of this file.
59 return "This filter extracts the surface normal vector and other statistics to each point by taking the eigenvector corresponding to the smallest eigenvalue of its nearest neighbors.\n\n"
60 "Required descriptors: none.\n"
61 "Produced descritors: normals(optional), densities(optional), eigValues(optional), eigVectors(optional), matchedIds (optional), meanDists(optional).\n"
62 "Altered descriptors: none.\n"
63 "Altered features: none.";
68 {
"knn",
"number of nearest neighbors to consider, including the point itself",
"5",
"3",
"2147483647", &P::Comp<unsigned>},
69 {
"maxDist",
"maximum distance to consider for neighbors",
"inf",
"0",
"inf", &P::Comp<T>},
70 {
"epsilon",
"approximation to use for the nearest-neighbor search",
"0",
"0",
"inf", &P::Comp<T>},
71 {
"keepNormals",
"whether the normals should be added as descriptors to the resulting cloud",
"1"},
72 {
"keepDensities",
"whether the point densities should be added as descriptors to the resulting cloud",
"0"},
73 {
"keepEigenValues",
"whether the eigen values should be added as descriptors to the resulting cloud",
"0"},
74 {
"keepEigenVectors",
"whether the eigen vectors should be added as descriptors to the resulting cloud",
"0"},
75 {
"keepMatchedIds" ,
"whether the identifiers of matches points should be added as descriptors to the resulting cloud",
"0"},
76 {
"keepMeanDist" ,
"whether the distance to the nearest neighbor mean should be added as descriptors to the resulting cloud",
"0"},
77 {
"sortEigen" ,
"whether the eigenvalues and eigenvectors should be sorted (ascending) based on the eigenvalues",
"0"},
78 {
"smoothNormals",
"whether the normal vector should be average with the nearest neighbors",
"0"}
virtual DataPoints filter(const DataPoints &input)
Apply filters to input point cloud. This is the non-destructive version and returns a copy.
PointMatcherSupport::Parametrizable P
PointMatcher< T >::Matrix Matrix
SurfaceNormalDataPointsFilter(const Parameters ¶ms=Parameters())
PM::DataPointsFilter DataPointsFilter
const bool keepEigenVectors
virtual void inPlaceFilter(DataPoints &cloud)
Apply these filters to a point cloud without copying.
PointMatcherSupport::Parametrizable Parametrizable
Functions and classes that are dependant on scalar type are defined in this templatized class.
const bool keepMatchedIds
PointMatcher< T >::DataPoints DataPoints
Surface normals estimation. Find the normal for every point using eigen-decomposition of neighbour po...
PointMatcher< T >::DataPoints::InvalidField InvalidField
An exception thrown when one tries to access features or descriptors unexisting or of wrong dimension...
static const std::string description()
PointMatcher< T >::Vector Vector
Parametrizable::Parameters Parameters
std::vector< ParameterDoc > ParametersDoc
The documentation of all parameters.
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > Matrix
A dense matrix over ScalarType.
An exception thrown when one tries to fetch the value of an unexisting parameter.
Eigen::Matrix< T, Eigen::Dynamic, 1 > Vector
A vector over ScalarType.
const bool keepEigenValues
Parametrizable::ParametersDoc ParametersDoc
The superclass of classes that are constructed using generic parameters. This class provides the para...
Parametrizable::ParameterDoc ParameterDoc
The documentation of a parameter.
static const ParametersDoc availableParameters()
std::map< std::string, Parameter > Parameters
Parameters stored as a map of string->string.
Parametrizable::InvalidParameter InvalidParameter
virtual ~SurfaceNormalDataPointsFilter()