Mech-Eye API 2.2.1
API reference documentation for Mech-Eye 3D Laser Profiler
All Classes Functions Variables Typedefs Enumerations Enumerator Pages
RawImageParameters.h
1#pragma once
2#include "Parameter.h"
3
4namespace mmind {
5namespace eye {
6
7namespace brightness_settings {
8
10{
11public:
12 static constexpr const char* name = "ExposureMode";
13
14 static constexpr const char* description =
15 "Select the exposure mode for acquiring the raw image based on the texture and color of "
16 "the target object.\nTimed: suitable for target objects of a single texture or color. "
17 "\nHDR: suitable for target objects with various textures or colors.";
18
19 static constexpr Parameter::Type type = Parameter::Type::_Enum;
20
21 enum struct Value {
22 HDR,
23 Timed,
24 };
25};
26
28{
29public:
30 static constexpr const char* name = "ExposureTime";
31
32 static constexpr const char* description =
33 "The function of this parameter depends on the the value of \"ExposureMode\".\n\nIf "
34 "\"ExposureMode\" is set to \"Timed\": Set the exposure time for acquiring the raw image "
35 "in this parameter. Exposure time affects the brightness and width of the laser lines in "
36 "the raw image, as well as the \"MaxScanRate\" of the laser profiler.\nLonger exposure "
37 "time results in brighter and wider laser lines and lower \"MaxScanRate\". Shorter "
38 "exposure time results in darker and narrower laser lines and higher "
39 "\"MaxScanRate\".\n\nIf \"ExposureMode\" is set to \"HDR\": Set the total time for three "
40 "exposures in this parameter. Then, adjust \"HdrExposureTimeProportion1\" and "
41 "\"HdrExposureTimeProportion2\" to change the lengths of each exposure.\n\nTo enhance the "
42 "\"MaxScanRate\", decrease this parameter and increase \"AnalogGain\".\nIf this parameter "
43 "has reached its maximum value, but the laser lines are still too dark, increase "
44 "\"AnalogGain\".\nIf this parameter has reached its minimum value, but the laser lines are "
45 "still too bright, decrease \"LaserPower\".";
46
47 static constexpr Parameter::Type type = Parameter::Type::_Int;
48
49 static constexpr const char* unit = "us";
50};
51
53{
54public:
55 static constexpr const char* name = "HdrExposureTimeProportion1";
56
57 static constexpr const char* description =
58 "Adjust the proportion of the first exposure time in the total exposure time of the HDR "
59 "exposure mode. The value of this parameter is usually greater than the value of "
60 "\"HdrExposureTimeProportion2\".";
61
62 static constexpr Parameter::Type type = Parameter::Type::_Float;
63
64 static constexpr const char* unit = "%";
65};
66
68{
69public:
70 static constexpr const char* name = "HdrExposureTimeProportion2";
71
72 static constexpr const char* description =
73 "Adjust the proportion of the second exposure time in the total exposure time of the HDR "
74 "exposure mode. The value of this parameter is usually smaller than the value of "
75 "\"HdrExposureTimeProportion1\" but greater than "
76 "(1-\"HdrExposureTimeProportion1\"-\"HdrExposureTimeProportion2\").";
77
78 static constexpr Parameter::Type type = Parameter::Type::_Float;
79
80 static constexpr const char* unit = "%";
81};
82
84{
85public:
86 static constexpr const char* name = "HdrFirstThreshold";
87
88 static constexpr const char* description =
89 "Set the maximum reachable grayscale value of the first exposure time of the HDR exposure "
90 "mode. This is a percentage of the largest grayscale value 255.";
91
92 static constexpr Parameter::Type type = Parameter::Type::_Float;
93
94 static constexpr const char* unit = "%";
95};
96
98{
99public:
100 static constexpr const char* name = "HdrSecondThreshold";
101
102 static constexpr const char* description =
103 "Set the maximum reachable grayscale value of the second exposure time of the HDR exposure "
104 "mode. This is a percentage of the largest grayscale value 255.";
105
106 static constexpr Parameter::Type type = Parameter::Type::_Float;
107
108 static constexpr const char* unit = "%";
109};
110
112{
113public:
114 static constexpr const char* name = "AnalogGain";
115
116 static constexpr const char* description =
117 "Increasing this parameter can enhance the brightness of the raw image. However, noise "
118 "will also be introduced.\nIf the laser lines are dark, but a high \"MaxScanRate\" is "
119 "needed, you can increase this parameter and decrease \"ExposureTime\".\nIf "
120 "\"ExposureTime\" has reached its maximum value, but the laser lines are still too "
121 "dark, you can increase this parameter.\nIf this parameter has reached its maximum value, "
122 "but the laser lines are still too dark, increase \"DigitalGain\" or "
123 "\"LaserPower\".\nNote: A large value of this parameter weakens the effect of HDR.";
124
125 static constexpr Parameter::Type type = Parameter::Type::_Enum;
126
127 enum struct Value {
128 Gain_1_0, /* 1.0 */
129 Gain_1_3, /* 1.3 */
130 Gain_1_9, /* 1.9 */
131 Gain_2_8, /* 2.8 */
132 Gain_5_5, /* 5.5 */
133 };
134};
135
137{
138public:
139 static constexpr const char* name = "AnalogGainFor8030";
140
141 static constexpr const char* description =
142 "Increasing this parameter can enhance the brightness of the raw image. However, noise "
143 "will also be introduced.\nIf the laser lines are dark, but a high \"MaxScanRate\" is "
144 "needed, you can increase this parameter and decrease \"ExposureTime\".\nIf "
145 "\"ExposureTime\" has reached its maximum value, but the laser lines are still too "
146 "dark, you can increase this parameter.\nIf this parameter has reached its maximum value, "
147 "but the laser lines are still too dark, increase \"DigitalGain\" or "
148 "\"LaserPower\".\nNote: A large value of this parameter weakens the effect of HDR.";
149
150 static constexpr Parameter::Type type = Parameter::Type::_Enum;
151
152 enum struct Value {
153 Gain_1_0,
154 Gain_1_3,
155 Gain_2_0,
156 Gain_3_0,
157 };
158};
159
161{
162public:
163 static constexpr const char* name = "DigitalGain";
164
165 static constexpr const char* description =
166 "Increasing this parameter can enhance the brightness of the raw image. However, a "
167 "relatively large amount of noise will also be introduced.\nIf \"AnalogGain\" has reached "
168 "its maximum value, but the laser lines are still too dark, you can increase \"Digital "
169 "Gain\". \n\nNote: \"Digital Gain\" affects the minimum value of \"Min Grayscale "
170 "Value\".";
171
172 static constexpr Parameter::Type type = Parameter::Type::_Int;
173};
174
176{
177public:
178 static constexpr const char* name = "LaserPower";
179
180 static constexpr const char* description =
181 "Set the power of the emitted laser, which affects the brightness of the laser lines in "
182 "the raw image.\nIf the object is reflective or light-colored, you can decrease this "
183 "parameter to reduce the brightness of the laser lines. If the object is unreflective or "
184 "dark-colored, you can increase this parameter to enhance the brightness of the laser "
185 "lines.\nNote: Even at the same power level, the brightness of the laser emitted by each "
186 "device differs. Please adjust this parameter based on the actual condition of each "
187 "device.";
188
189 static constexpr Parameter::Type type = Parameter::Type::_Int;
190};
191
192} // namespace brightness_settings
193
194namespace roi {
195
197{
198public:
199 static constexpr const char* name = "ZDirectionRoi";
200
201 static constexpr const char* description =
202 "A Z-direction ROI retains only the middle part of the raw image and trims the top and "
203 "bottom parts off.\nSetting a Z-direction ROI can reduce the amount of data to be "
204 "processed and enhance the \"MaxScanRate\".\nThe options are the ratio of the height of "
205 "the trimmed image to the height of the untrimmed image.";
206
207 static constexpr Parameter::Type type = Parameter::Type::_Enum;
208
209 enum struct Value {
210 ImageHeight_1_1,
211 ImageHeight_1_2,
212 ImageHeight_1_4,
213 ImageHeight_1_8,
214 ImageHeight_1_16,
215 };
216};
217} // namespace roi
218
219} // namespace eye
220
221} // 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
@ _Float
Double type.
Definition Parameter.h:32