Mech-Eye API 2.4.0
API reference documentation for Mech-Eye 3D Laser Profiler
Loading...
Searching...
No Matches
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.\n\nNote:\n* \"MeanFilterWindowSize\" "
41 "is unavailable when \"Filter\" is not set to \"Mean\".";
42
43 static constexpr Parameter::Type type = Parameter::Type::_Enum;
44
45 enum struct Value {
46 WindowSize_2,
47 WindowSize_4,
48 WindowSize_8,
49 WindowSize_16,
50 WindowSize_32,
51 };
52};
53
55{
56public:
57 static constexpr const char* name = "MedianFilterWindowSize";
58
59 static constexpr const char* description =
60 "Set the window size of the median filter.\nLarger window size removes more "
61 "noise.\n\nNote:\n* \"MedianFilterWindowSize\" is unavailable when \"Filter\" is not set "
62 "to \"Median\".";
63
64 static constexpr Parameter::Type type = Parameter::Type::_Enum;
65
66 enum struct Value {
67 WindowSize_3,
68 WindowSize_5,
69 WindowSize_7,
70 WindowSize_9,
71 };
72};
73
75{
76public:
77 static constexpr const char* name = "GapFilling";
78
79 static constexpr const char* description =
80 "Set the size of the gaps that can be filled in the profile.\nWhen the number of "
81 "consecutive data points in a gap in the profile is no greater than this value, this gap "
82 "will be filled. The data used for filling is calculated based on the difference between "
83 "the two neighboring points (that is, based on linear interpolation).";
84
85 static constexpr Parameter::Type type = Parameter::Type::_Int;
86};
87
89{
90public:
91 static constexpr const char* name = "GapFillingEdgePreservation";
92
93 static constexpr const char* description =
94 "Set the degree of preservation of object edges when filling gaps.\n\nIf you need to "
95 "preserve features with abrupt depth variations, such as object edges, you can increase "
96 "this parameter, but the amount of gaps being filled will decrease.";
97
98 static constexpr Parameter::Type type = Parameter::Type::_Int;
99};
100
102{
103public:
104 static constexpr const char* name = "Resampling";
105
106 static constexpr const char* description =
107 "Select the point to be retained during resampling. \nMultiple points with different Z "
108 "values may exist at the same location on the X-axis. This parameter is used to select the "
109 "point to be retained in such a situation.\n\nNearest: retains the point closest to the "
110 "laser profiler.\nFarthest: retains the point farthest from the laser profiler.\nIf the "
111 "needed feature is at the bottom of the target object (such as the inner bottom of a "
112 "cylindrical container), you can select \"Farthest\"";
113
114 static constexpr Parameter::Type type = Parameter::Type::_Enum;
115
116 enum struct Value {
117 Nearest,
118 Farthest,
119 };
120};
121
123{
124public:
125 static constexpr const char* name = "ResamplingEdgePreservation";
126
127 static constexpr const char* description =
128 "Set the degree of preservation of object edges during resampling. \nIf you need to "
129 "preserve features with abrupt depth variations, such as object edges, you can increase "
130 "this parameter.";
131
132 static constexpr Parameter::Type type = Parameter::Type::_Int;
133};
134
135} // namespace profile_processing
136
137namespace profile_alignment {
138
140{
141public:
142 static constexpr const char* name = "EnableZAxisAlignment";
143
144 static constexpr const char* description =
145 "Set this parameter to apply the Z-axis profile alignment settings. Acquire data again "
146 "to see the effect. \nNOTE: The profile alignment function can only be applied after all "
147 "profiles have been retrieved. Therefore, the profile data must be retrieved with a "
148 "callback function instead of polling.";
149 static constexpr Parameter::Type type = Parameter::Type::_Bool;
150};
151
153{
154public:
155 static constexpr const char* name = "EnableXAxisAlignment";
156
157 static constexpr const char* description =
158 "Set this parameter to apply the X-axis profile alignment settings. Acquire data again "
159 "to see the effect. \nNOTE: The profile alignment function can only be applied after all "
160 "profiles have been retrieved. Therefore, the profile data must be retrieved with a "
161 "callback function instead of polling.";
162 static constexpr Parameter::Type type = Parameter::Type::_Bool;
163};
164
165} // namespace profile_alignment
166
167namespace filters {
169{
170public:
171 static constexpr const char* name = "EnableBlindSpotFiltering";
172
173 static constexpr const char* description =
174 "Check this parameter to apply the blind spot filtering settings. Acquire data again to "
175 "see the effect. \nNOTE: The blind spot filtering function can only be applied after all "
176 "profiles have been retrieved. Therefore, the profile data must be retrieved with a "
177 "callback function instead of polling.";
178
179 static constexpr Parameter::Type type = Parameter::Type::_Bool;
180};
181
183{
184public:
185 static constexpr const char* name = "EnableNoiseRemoval";
186
187 static constexpr const char* description =
188 "Check this parameter to adjust and apply the noise removal setting. Acquire data again to "
189 "see the effect. \nNOTE: The noise removal function can only be applied after all "
190 "profiles have been retrieved. Therefore, the profile data must be retrieved with a "
191 "callback function instead of polling.";
192
193 static constexpr Parameter::Type type = Parameter::Type::_Bool;
194};
195
197{
198public:
199 static constexpr const char* name = "NoiseRemovalIntensity";
200
201 static constexpr const char* description =
202 "Sets the intensity of noise removal.\n\nHigher intensity removes more noise but may also "
203 "remove some object features.";
204
205 static constexpr Parameter::Type type = Parameter::Type::_Enum;
206
207 enum struct Value { Low, Medium, High };
208};
209
210} // namespace filters
211} // namespace eye
212} // 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
@ _Bool
Boolean type.
Definition Parameter.h:33