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"}
96 virtual DataPoints
filter(
const DataPoints& input);
PointMatcher< T >::Matrix Matrix
virtual ~SurfaceNormalDataPointsFilter()
static const ParametersDoc availableParameters()
PointMatcherSupport::Parametrizable P
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > Matrix
A dense matrix over ScalarType.
virtual void inPlaceFilter(DataPoints &cloud)
Apply these filters to a point cloud without copying.
SurfaceNormalDataPointsFilter(const Parameters ¶ms=Parameters())
std::map< std::string, Parameter > Parameters
Parameters stored as a map of string->string.
Parametrizable::ParameterDoc ParameterDoc
Functions and classes that are dependant on scalar type are defined in this templatized class...
virtual DataPoints filter(const DataPoints &input)
Apply filters to input point cloud. This is the non-destructive version and returns a copy...
The documentation of a parameter.
The superclass of classes that are constructed using generic parameters. This class provides the para...
An exception thrown when one tries to fetch the value of an unexisting parameter. ...
std::vector< ParameterDoc > ParametersDoc
The documentation of all parameters.
static const std::string description()
Parametrizable::InvalidParameter InvalidParameter
PointMatcherSupport::Parametrizable Parametrizable
const bool keepMatchedIds
Surface normals estimation. Find the normal for every point using eigen-decomposition of neighbour po...
An exception thrown when one tries to access features or descriptors unexisting or of wrong dimension...
PointMatcher< T >::DataPoints DataPoints
const bool keepEigenVectors
PointMatcher< T >::Vector Vector
Parametrizable::Parameters Parameters
Eigen::Matrix< T, Eigen::Dynamic, 1 > Vector
A vector over ScalarType.
Parametrizable::ParametersDoc ParametersDoc
PM::DataPointsFilter DataPointsFilter
const bool keepEigenValues
PointMatcher< T >::DataPoints::InvalidField InvalidField