Go to the documentation of this file.
57 return "Gestalt descriptors filter.";
62 {
"ratio",
"ratio of points to keep with random subsampling. Matrix (normal, density, etc.) will be associated to all points in the same bin.",
"0.1",
"0.0000001",
"0.9999999", &P::Comp<T>},
63 {
"radius",
"is the radius of the gestalt descriptor, will be divided into 4 circular and 8 radial bins = 32 bins",
"5",
"0.1",
"2147483647", &P::Comp<T>},
64 {
"knn",
"determined how many points are used to compute the normals. Direct link with the rapidity of the computation (large = fast). Technically, limit over which a box is splitted in two",
"7",
"3",
"2147483647", &P::Comp<unsigned>},
65 {
"vSizeX",
"Dimension of each voxel cell in x direction",
"1.0",
"-inf",
"inf", &P::Comp<T>},
66 {
"vSizeY",
"Dimension of each voxel cell in y direction",
"1.0",
"-inf",
"inf", &P::Comp<T>},
67 {
"vSizeZ",
"Dimension of each voxel cell in z direction",
"1.0",
"-inf",
"inf", &P::Comp<T>},
68 {
"keepMeans",
"whether the means should be added as descriptors to the resulting cloud",
"0"},
69 {
"maxBoxDim",
"maximum length of a box above which the box is discarded",
"inf"},
70 {
"averageExistingDescriptors",
"whether the filter keep the existing point descriptors and average them or should it drop them",
"1"},
71 {
"maxTimeWindow",
"maximum spread of times in a surfel",
"inf"},
72 {
"keepNormals",
"whether the normals should be added as descriptors to the resulting cloud",
"1"},
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 {
"keepCovariances",
"whether the covariances should be added as descriptors to the resulting cloud",
"0"},
76 {
"keepGestaltFeatures",
"whether the Gestalt features shall be added to the resulting cloud",
"1"}
113 typedef typename Eigen::Matrix<std::int64_t, Eigen::Dynamic, Eigen::Dynamic>
Int64Matrix;
114 typedef typename Eigen::Matrix<std::int64_t, 1, Eigen::Dynamic>
Int64Vector;
139 const int pointsCount(
features.cols());
141 for (
int i = 0; i < pointsCount; ++i)
bool operator()(const int &p0, const int &p1)
Eigen::Matrix< std::int64_t, Eigen::Dynamic, Eigen::Dynamic > Int64Matrix
const bool keepGestaltFeatures
void fuseRange(BuildData &data, DataPoints &input, const int first, const int last) const
PM::DataPointsFilter DataPointsFilter
Parametrizable::ParameterDoc ParameterDoc
static const ParametersDoc availableParameters()
const bool keepCovariances
PointMatcher< T >::Matrix Matrix
PointMatcher< T >::Vector calculateRadii(const Matrix &points, const Eigen::Matrix< T, 3, 1 > &) const
const bool keepEigenValues
std::vector< int > Indices
boost::optional< View > gestaltMeans
Functions and classes that are dependant on scalar type are defined in this templatized class.
boost::optional< View > gestaltShapes
boost::optional< View > eigenVectors
GestaltDataPointsFilter(const Parameters ¶ms=Parameters())
boost::optional< View > warpedXYZ
Eigen::Matrix< std::int64_t, 1, Eigen::Dynamic > Int64Vector
Gestalt descriptors filter as described in Bosse & Zlot ICRA 2013.
virtual ~GestaltDataPointsFilter()
An exception thrown when one tries to access features or descriptors unexisting or of wrong dimension...
PointMatcherSupport::Parametrizable Parametrizable
virtual DataPoints filter(const DataPoints &input)
boost::optional< View > normals
PointMatcher< T >::Vector serializeGestaltMatrix(const Matrix &gestaltFeatures) const
std::vector< ParameterDoc > ParametersDoc
The documentation of all parameters.
boost::optional< View > gestaltVariances
PointMatcher< T >::DataPoints::InvalidField InvalidField
const bool averageExistingDescriptors
PointMatcherSupport::Parametrizable P
PointMatcher< T >::DataPoints DataPoints
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > Matrix
A dense matrix over ScalarType.
Parametrizable::ParametersDoc ParametersDoc
virtual void inPlaceFilter(DataPoints &cloud)
PointMatcher< T >::Vector calculateAngles(const Matrix &points, const Eigen::Matrix< T, 3, 1 > &) const
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.
Parametrizable::Parameters Parameters
boost::optional< View > eigenValues
void buildNew(BuildData &data, const int first, const int last, Vector &&minValues, Vector &&maxValues) const
boost::optional< View > covariance
The superclass of classes that are constructed using generic parameters. This class provides the para...
The documentation of a parameter.
const bool keepEigenVectors
Eigen::Block< Matrix > View
A view on a feature or descriptor.
BuildData(Matrix &features, Matrix &descriptors, Int64Matrix ×)
boost::optional< View > means
const BuildData & buildData
PointMatcher< T >::Vector Vector
static const std::string description()
CompareDim(const int dim, const BuildData &buildData)
std::map< std::string, Parameter > Parameters
Parameters stored as a map of string->string.
Parametrizable::InvalidParameter InvalidParameter