Mech-Eye API 2.4.0
API reference documentation for Mech-Eye 3D Laser Profiler
Loading...
Searching...
No Matches
ProfileExtractionParameters.h
1#pragma once
2#include "Parameter.h"
3
4namespace mmind {
5namespace eye {
6namespace profile_extraction {
7
9{
10public:
11 static constexpr const char* name = "MinGrayscaleValue";
12
13 static constexpr const char* description =
14 "Set the minimum grayscale value of the valid pixels in the raw image. Pixels with "
15 "grayscale values smaller than this value will not participate in profile "
16 "extraction.\n\nNote: \n* The minimum value of \"Min Grayscale Value\" is affected by "
17 "\"Digital Gain\".";
18
19 static constexpr Parameter::Type type = Parameter::Type::_Int;
20};
21
23{
24public:
25 static constexpr const char* name = "MinSpotIntensity";
26
27 static constexpr const char* description =
28 "This parameter is only effective for firmware 2.2.1 and below."
29 "For firmware 2.3.0 and above, adjustment of this parameter does not take effect.\n"
30 "Set the minimum intensity for the spots. Spots with intensity values smaller than this "
31 "value will be excluded. The intensity of a spot is the average grayscale value of all the "
32 "valid pixels in the pixel column of the laser line.\nThe spots of laser lines produced by "
33 "stray light or interreflection usually have low intensities. Setting an appropriate "
34 "minimum intensity can remove these spots.\n\nNote: The minimum value of \"Min Spot "
35 "Intensity\" is affected by \"Min Grayscale Value\".";
36
37 static constexpr Parameter::Type type = Parameter::Type::_Int;
38};
39
41{
42public:
43 static constexpr const char* name = "MaxSpotIntensity";
44
45 static constexpr const char* description =
46 "This parameter is only effective for firmware 2.2.1 and below."
47 "For firmware 2.3.0 and above, adjustment of this parameter does not take effect.\n"
48 "Set the maximum intensity for the spots. Spots with intensity values greater than this "
49 "value will be excluded. The intensity of a spot is the average grayscale value of all the "
50 "valid pixels in the pixel column of the laser line.\nSetting an appropriate maximum "
51 "intensity can remove abnormally bright spots produced by specular reflection.\n\nNote: "
52 "The minimum value of \"Max Spot Intensity\" is affected by \"Min Grayscale Value\".";
53
54 static constexpr Parameter::Type type = Parameter::Type::_Int;
55};
56
58{
59public:
60 static constexpr const char* name = "MinLaserLineWidth";
61
62 static constexpr const char* description =
63 "Set the minimum width for the laser lines. If the width of a pixel column in a laser line "
64 "is smaller than this value, this pixel column in this laser line does not participate in "
65 "profile extraction.\nLaser line width is a property of each pixel column in a laser line. "
66 "It is equal to the number of valid pixels in such a pixel column.\nSetting appropriate "
67 "minimum and maximum widths can exclude the laser lines produced by stray light or "
68 "interreflection, which are usually too wide or too narrow.";
69
70 static constexpr Parameter::Type type = Parameter::Type::_Int;
71};
72
74{
75public:
76 static constexpr const char* name = "MaxLaserLineWidth";
77
78 static constexpr const char* description =
79 "Set the maximum width for the laser lines. If the width of a pixel column in a laser line "
80 "is greater than this value, this pixel column in this laser line does not participate in "
81 "profile extraction.\nLaser line width is a property of each pixel column in a laser line. "
82 "It is equal to the number of valid pixels in such a pixel column.\nSetting appropriate "
83 "minimum and maximum widths can exclude the laser lines produced by stray light or "
84 "interreflection, which are usually too wide or too narrow.";
85
86 static constexpr Parameter::Type type = Parameter::Type::_Int;
87};
88
90{
91public:
92 static constexpr const char* name = "SpotSelection";
93
94 static constexpr const char* description =
95 "If a pixel column contains multiple laser lines, the laser line used for profile "
96 "extraction is selected according to the value of this parameter.\nStrongest: selects the "
97 "laser line with the highest intensity for profile extraction.\nNearest: selects the laser "
98 "line closest to the laser profiler for profile extraction.\nFarthest: selects the laser "
99 "line farthest from the laser profiler for profile extraction.\nInvalid: regards the pixel "
100 "column as invalid. The profile therefore has a gap. Usually used for complex situations "
101 "where selection is difficult to make.";
102
103 static constexpr Parameter::Type type = Parameter::Type::_Enum;
104
105 enum struct Value {
106 Strongest,
107 Nearest,
108 Farthest,
109 Invalid,
110 };
111};
112
114{
115public:
116 static constexpr const char* name = "EdgeSelection";
117
118 static constexpr const char* description =
119 "Select the location for extracting the profile in each laser line.\nTop edge: extracts "
120 "the profile from the top edge of the laser line.\nCenter: extracts the profile from the "
121 "center of the laser line.\nBottom edge: extracts the profile from the bottom edge of the "
122 "laser line.\nIf the target object is a transparent/translucent object, such as glue, you "
123 "can select \"Top edge\".";
124
125 static constexpr Parameter::Type type = Parameter::Type::_Enum;
126
127 enum struct Value { Center, TopEdge, BottomEdge };
128};
129
131{
132public:
133 static constexpr const char* name = "MinSharpness";
134
135 static constexpr const char* description =
136 "Set the minimum sharpness of the laser lines. Sharpness is the clearness of the edges of "
137 "a laser line. Increasing this parameter can exclude the laser lines produced by stray "
138 "light or interreflection, which are usually too dark and blurry.";
139
140 static constexpr Parameter::Type type = Parameter::Type::_Int;
141};
142
144{
145public:
146 static constexpr const char* name = "BrightnessAdjustment";
147
148 static constexpr const char* description =
149 "Adjusts the brightness of the intensity image. A greater value of this parameter results "
150 "in a brighter intensity image. The initial brightness of the intensity image is "
151 "Scale_1_0_0.";
152
153 static constexpr Parameter::Type type = Parameter::Type::_Enum;
154
155 enum struct Value {
156 Scale_0_5_0, /* 0.5 */
157 Scale_0_7_5, /* 0.75 */
158 Scale_1_0_0, /* 1.0 */
159 Scale_1_5_0, /* 1.5 */
160 Scale_2_0_0, /* 2.0 */
161 };
162};
163
164} // namespace profile_extraction
165} // namespace eye
166} // 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