Mech-Eye API 2.2.1
API reference documentation for Mech-Eye 3D Laser Profiler
All Classes Functions Variables Typedefs 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 (edge preserving): performs mean filtering with edge "
17 "preservation. Features with abrupt depth variations (such as object edges) are well "
18 "preserved, but the smoothing effect around object edges is slightly worse. Suitable for "
19 "objects that have features with abrupt depth variations. When selecting this optioin, set "
20 "\"MeanFilterWindowSize\".\nMedian: performs median filtering, suitable for reducing noise "
21 "with depth values significantly different from surrounding points. When selecting this "
22 "option, set \"MedianFilterWindowSize\".";
23
24 static constexpr Parameter::Type type = Parameter::Type::_Enum;
25
26 enum struct Value {
27 None,
28 Mean,
29 Median,
30 };
31};
32
34{
35public:
36 static constexpr const char* name = "MeanFilterWindowSize";
37
38 static constexpr const char* description =
39 "Set the window size of the mean filter.\nLarger window size results in higher intensity "
40 "of smoothing but may also distort object features.";
41
42 static constexpr Parameter::Type type = Parameter::Type::_Enum;
43
44 enum struct Value {
45 WindowSize_2,
46 WindowSize_4,
47 WindowSize_8,
48 WindowSize_16,
49 WindowSize_32,
50 };
51};
52
54{
55public:
56 static constexpr const char* name = "MedianFilterWindowSize";
57
58 static constexpr const char* description =
59 "Set the window size of the median filter.\nLarger window size removes more noise.";
60
61 static constexpr Parameter::Type type = Parameter::Type::_Enum;
62
63 enum struct Value {
64 WindowSize_3,
65 WindowSize_5,
66 WindowSize_7,
67 WindowSize_9,
68 };
69};
70
72{
73public:
74 static constexpr const char* name = "GapFilling";
75
76 static constexpr const char* description =
77 "Set the size of the gaps that can be filled in the profile.\nWhen the number of "
78 "consecutive data points in a gap in the profile is no greater than this value, this gap "
79 "will be filled. The data used for filling is calculated based on the difference between "
80 "the two neighboring points (that is, based on linear interpolation).";
81
82 static constexpr Parameter::Type type = Parameter::Type::_Int;
83};
84
86{
87public:
88 static constexpr const char* name = "GapFillingEdgePreservation";
89
90 static constexpr const char* description =
91 "Set the degree of preservation of object edges when filling gaps.\n\nIf you need to "
92 "preserve features with abrupt depth variations, such as object edges, you can increase "
93 "this parameter, but the amount of gaps being filled will decrease.";
94
95 static constexpr Parameter::Type type = Parameter::Type::_Int;
96};
97
98} // namespace profile_processing
99} // namespace eye
100} // namespace mmind
Type
Describes the device parameter data types.
Definition Parameter.h:30
@ _Int
Integer type.
Definition Parameter.h:31
@ _Enum
Enumeration type.
Definition Parameter.h:34