Skip to content

Commit eb6f4bd

Browse files
committed
fixes
1 parent 863b586 commit eb6f4bd

4 files changed

Lines changed: 21 additions & 5 deletions

File tree

mp2p_icp_filters/include/mp2p_icp_filters/FilterVoxelSOR.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* @file FilterVoxelSOR.h
1717
* @brief Voxel-based Statistical Outlier Removal (SOR) filter.
1818
* @author Jose Luis Blanco Claraco
19-
* @date Jan 21, 2025
19+
* @date Jan 21, 2026
2020
*/
2121

2222
#pragma once

mp2p_icp_filters/src/FilterSOR.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,8 +165,8 @@ void FilterSOR::filter(mp2p_icp::metric_map_t& inOut) const
165165
const bool isInlier = (avg_distances[i] <= threshold);
166166
if (isInlier)
167167
{
168-
++num_inliers;
169168
#if MRPT_VERSION >= 0x020f03 // 2.15.3
169+
++num_inliers;
170170
if (outInliers)
171171
{
172172
outInliers->insertPointFrom(i, *ctxI);
@@ -180,25 +180,29 @@ void FilterSOR::filter(mp2p_icp::metric_map_t& inOut) const
180180
outOutliers->insertPointFrom(i, *ctxO);
181181
}
182182
#elif MRPT_VERSION >= 0x020f00 // 2.15.0
183+
++num_inliers;
183184
if (outInliers)
184185
{
185186
outInliers->insertPointFrom(pc, i, *ctxI);
186187
}
187188
}
188189
else
189190
{
191+
++num_outliers;
190192
if (outOutliers)
191193
{
192194
outOutliers->insertPointFrom(pc, i, *ctxO);
193195
}
194196
#else
197+
++num_inliers;
195198
if (outInliers)
196199
{
197200
outInliers->insertPointFrom(pc, i);
198201
}
199202
}
200203
else
201204
{
205+
++num_outliers;
202206
if (outOutliers)
203207
{
204208
outOutliers->insertPointFrom(pc, i);

mp2p_icp_filters/src/FilterVoxelSOR.cpp

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* @file FilterVoxelSOR.cpp
1717
* @brief Voxel-based Statistical Outlier Removal (SOR) filter.
1818
* @author Jose Luis Blanco Claraco
19-
* @date Jan 21, 2025
19+
* @date Jan 21, 2026
2020
*/
2121

2222
#include <mp2p_icp_filters/FilterVoxelSOR.h>
@@ -54,6 +54,10 @@ void FilterVoxelSOR::Parameters::load_from_yaml(const mrpt::containers::yaml& c)
5454
void FilterVoxelSOR::initialize_filter(const mrpt::containers::yaml& c)
5555
{
5656
params.load_from_yaml(c);
57+
58+
ASSERT_GT_(params.voxel_size, 0.0f);
59+
ASSERT_GE_(params.mean_k, 1);
60+
ASSERT_GE_(params.parallelization_grain_size, 1);
5761
}
5862

5963
void FilterVoxelSOR::filter(mp2p_icp::metric_map_t& inOut) const
@@ -64,6 +68,15 @@ void FilterVoxelSOR::filter(mp2p_icp::metric_map_t& inOut) const
6468
return;
6569
}
6670

71+
if (params.output_layer_inliers == params.input_layer ||
72+
(!params.output_layer_outliers.empty() &&
73+
(params.output_layer_outliers == params.input_layer ||
74+
params.output_layer_outliers == params.output_layer_inliers)))
75+
{
76+
throw std::invalid_argument(
77+
"FilterVoxelSOR: output layers must differ from input_layer and each other");
78+
}
79+
6780
MRPT_LOG_DEBUG("FilterVoxelSOR: Starting SOR filtering...");
6881

6982
// 1. Partition into Voxel Grid

tests/test-mp2p_class_factory.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
/**
1616
* @file test-mp2p_class_factory.cpp
17-
* @brief Unit tests for Generator
17+
* @brief Unit tests to check correct registration of classes
1818
* @author Jose Luis Blanco Claraco
1919
* @date Jan 21, 2026
2020
*/
@@ -99,5 +99,4 @@ int main([[maybe_unused]] int argc, [[maybe_unused]] char** argv)
9999
std::cerr << mrpt::exception_to_str(e) << "\n";
100100
return 1;
101101
}
102-
return 0;
103102
}

0 commit comments

Comments
 (0)