Mech-Eye API Reference 2.1.4-alpha
API reference documentation for Mech-Eye 3D Laser Profiler
All Classes Functions Variables Enumerations Enumerator Pages
ProfileProcessingParameters.h
1#pragma once
2#include "Parameter.h"
3
4namespace mmind {
5namespace eye {
6namespace profile_processing {
7
8class Filter
9{
10public:
11 static constexpr const char* name = "Filter";
12
13 static constexpr const char* description =
14 "Set the type of filters. Filtering the profile can reduce noise and smooth the profile.\n"
15 "None: does not perform filtering. Select this option when the profile does not contain "
16 "noticeable noise.\nMean: performs mean filtering without edge preservation. The profile "
17 "will be well smoothed, but features with abrupt depth variations (such as object edges) "
18 "may be distorted. Suitable for objects that do not have features with abrupt depth "
19 "variations. When selecting this option, set \"MeanFilterWindowSize\".\nMean (edge "
20 "preserving): performs mean filtering with edge preservation. Features with abrupt depth "
21 "variations (such as object edges) are well preserved, but the smoothing effect around "
22 "object edges is slightly worse. Suitable for objects that have features with abrupt depth "
23 "variations. When selecting this optioin, set \"MeanFilterWindowSize\".\nMedian: "
24 "performs median filtering, suitable for reducing noise with depth values significantly "
25 "different from surrounding points. When selecting this option, set "
26 "\"MedianFilterWindowSize\".";
27
28 static constexpr Parameter::Type type = Parameter::Type::_Enum;
29
30 enum struct Value {
31 None,
32 Mean,
33 MeanEdgePreserving,
34 Median,
35 };
36};
37
39{
40public:
41 static constexpr const char* name = "MeanFilterWindowSize";
42
43 static constexpr const char* description =
44 "Set the window size of the mean filter.\nLarger window size results in higher intensity "
45 "of smoothing but may also distort object features.";
46
47 static constexpr Parameter::Type type = Parameter::Type::_Enum;
48
49 enum struct Value {
50 WindowSize_2,
51 WindowSize_4,
52 WindowSize_8,
53 WindowSize_16,
54 WindowSize_32,
55 };
56};
57
59{
60public:
61 static constexpr const char* name = "MedianFilterWindowSize";
62
63 static constexpr const char* description =
64 "Set the window size of the median filter.\nLarger window size removes more noise.";
65
66 static constexpr Parameter::Type type = Parameter::Type::_Enum;
67
68 enum struct Value {
69 WindowSize_3,
70 WindowSize_5,
71 WindowSize_7,
72 WindowSize_9,
73 };
74};
75
77{
78public:
79 static constexpr const char* name = "GapFilling";
80
81 static constexpr const char* description =
82 "Set the size of the gaps that can be filled in the profile.\nWhen the number of "
83 "consecutive data points in a gap in the profile is no greater than this value, this gap "
84 "will be filled. The data used for filling is calculated based on the difference between "
85 "the two neighboring points (that is, based on linear interpolation).";
86
87 static constexpr Parameter::Type type = Parameter::Type::_Int;
88};
89
90} // namespace profile_processing
91} // namespace eye
92} // namespace mmind
Type
The device parameter data types.
Definition Parameter.h:24
@ _Int
Integer type.
Definition Parameter.h:25
@ _Enum
Enumeration type.
Definition Parameter.h:28