73 return "Point cloud sampling and enhancement: compute geometric features saliencies throught Tensor Voting framework and use them to sample the point cloud. \\cite{Labussiere2020}";
79 {
"k",
"Number of neighbors to consider",
"50",
"6",
"4294967295", &P::Comp<std::size_t>},
80 {
"sigma",
"Scale of the vote in TensorVoting.",
"0.2",
"0.",
"+inf", &P::Comp<T>},
81 {
"radius",
"Radius to control the scale of the uniform distribution.",
"0.4",
"0.",
"+inf", &P::Comp<T>},
82 {
"itMax",
"Number max of iterations to do",
"10",
"1",
"4294967295", &P::Comp<std::size_t>},
83 {
"keepNormals",
"Flag to keep normals computed by TV.",
"1",
"0",
"1", P::Comp<bool>},
84 {
"keepLabels",
"Flag to keep labels computed by TV.",
"1",
"0",
"1", P::Comp<bool>},
85 {
"keepLambdas",
"Flag to keep lambdas computed by TV.",
"1",
"0",
"1", P::Comp<bool>},
86 {
"keepTensors",
"Flag to keep elements Tensors computed by TV.",
"1",
"0",
"1", P::Comp<bool>}
107 virtual DataPoints
filter(
const DataPoints& input);
114 (std::sqrt(M_PI * sigma_) * std::erf(radius_ / std::sqrt(sigma_))) / (2. * radius_)
116 (sigma_ - sigma_ * std::exp(- radius_ * radius_ / sigma_)) / (radius_ * radius_)
118 3. * sigma_ * (std::sqrt(M_PI * sigma_) * std::erf(radius_ / std::sqrt(sigma_)) - 2. * radius_ * std::exp(- radius_ * radius_ / sigma_)) / (4. * radius_ * radius_ * radius_)
122 void addDescriptor(DataPoints& pts,
const TensorVoting<T> &tv,
bool keepNormals_,
bool keepLabels_,
bool keepLambdas_,
bool keepTensors_)
const;
Parametrizable::Parameters Parameters
PointMatcherSupport::Parametrizable Parametrizable
void filterPointness(DataPoints &pts, T xi, std::size_t k) const
void addDescriptor(DataPoints &pts, const TensorVoting< T > &tv, bool keepNormals_, bool keepLabels_, bool keepLambdas_, bool keepTensors_) const
Matrix::Index Index
An index to a row or a column.
SpectralDecompositionDataPointsFilter(const Parameters ¶ms=Parameters())
void filterSurfaceness(DataPoints &pts, T xi, std::size_t k) const
void removeOutlier(DataPoints &pts, const TensorVoting< T > &tv) const
virtual DataPoints filter(const DataPoints &input)
Apply filters to input point cloud. This is the non-destructive version and returns a copy...
virtual void inPlaceFilter(DataPoints &cloud)
Apply these filters to a point cloud without copying.
static const std::string description()
Parametrizable::InvalidParameter InvalidParameter
PointMatcherSupport::Parametrizable P
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > Matrix
A dense matrix over ScalarType.
PointMatcher< T >::DataPoints::InvalidField InvalidField
void filterCurveness(DataPoints &pts, T xi, std::size_t k) const
std::map< std::string, Parameter > Parameters
Parameters stored as a map of string->string.
static T xi_expectation(const std::size_t D, const T sigma_, const T radius_)
Functions and classes that are dependant on scalar type are defined in this templatized class...
A data filter takes a point cloud as input, transforms it, and produces another point cloud as output...
The documentation of a parameter.
PM::DataPointsFilter DataPointsFilter
virtual ~SpectralDecompositionDataPointsFilter()
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.
An exception thrown when one tries to access features or descriptors unexisting or of wrong dimension...
PM::DataPoints DataPoints
Eigen::Matrix< T, Eigen::Dynamic, 1 > Vector
A vector over ScalarType.
Parametrizable::ParameterDoc ParameterDoc
Parametrizable::ParametersDoc ParametersDoc
static const ParametersDoc availableParameters()