Mech-Eye API 2.3.3
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} // namespace eye
137} // 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