24 icp.outlierFilters.clear();
33 PM::get().OutlierFilterRegistrar.create(name, params);
34 icp.outlierFilters.push_back(testedOutlierFilter);
42 addFilter(
"MaxDistOutlierFilter", {
46 validate2dTransformation();
51 addFilter(
"MaxDistOutlierFilter", {
55 validate3dTransformation();
63 std::shared_ptr<PM::OutlierFilter> extraOutlierFilter;
66 PM::get().OutlierFilterRegistrar.create(
67 "MaxDistOutlierFilter", {
71 icp.outlierFilters.push_back(extraOutlierFilter);
73 addFilter(
"MinDistOutlierFilter", {{
"minDist",
toParam(0.0002)}});
75 validate2dTransformation();
82 std::shared_ptr<PM::OutlierFilter> extraOutlierFilter;
85 PM::get().OutlierFilterRegistrar.create(
86 "MaxDistOutlierFilter", {
91 icp.outlierFilters.push_back(extraOutlierFilter);
93 addFilter(
"MinDistOutlierFilter", {{
"minDist",
toParam(0.0002)}});
95 validate3dTransformation();
100 addFilter(
"MedianDistOutlierFilter", {{
"factor",
toParam(3.5)}});
101 validate2dTransformation();
102 validate3dTransformation();
108 addFilter(
"TrimmedDistOutlierFilter", {{
"ratio",
toParam(0.85)}});
109 validate2dTransformation();
110 validate3dTransformation();
116 addFilter(
"VarTrimmedDistOutlierFilter", {
122 validate2dTransformation();
123 validate3dTransformation();
135 dists << 4, 5, 5, 5, 5;
138 return filter.compute(filteredReading, filteredReference, input);
OutlierFiltersImpl< float >::OutlierWeights VarTrimLambdaTest(const float lambda)
std::string toParam(const S &value)
Return the a string value using lexical_cast.
#define ASSERT_EQ(val1, val2)
Parametrizable::Parameters Parameters
alias
std::shared_ptr< PM::OutlierFilter > testedOutlierFilter
PointMatcher< T >::OutlierWeights OutlierWeights
Functions and classes that are not dependant on scalar type are defined in this namespace.
Functions and classes that are dependant on scalar type are defined in this templatized class...
static const PointMatcher & get()
Return instances.
TEST_F(OutlierFilterTest, MaxDistOutlierFilter2D)
void addFilter(string name, PM::Parameters params)