Mech-Eye API 2.4.0
API reference documentation for Mech-Eye 3D Laser Profiler
Loading...
Searching...
No Matches
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,
129 Gain_2,
130 Gain_3,
131 Gain_4,
132 Gain_5,
133 };
134};
135
136class [[deprecated(
137 "Use class AnalogGain for LNX-8030 profilers with firmware version >= "
138 "V2.3.0.")]] AnalogGainFor8030;
140{
141public:
142 static constexpr const char* name = "AnalogGainFor8030";
143
144 static constexpr const char* description =
145 "Increasing this parameter can enhance the brightness of the raw image. However, noise "
146 "will also be introduced.\nIf the laser lines are dark, but a high \"MaxScanRate\" is "
147 "needed, you can increase this parameter and decrease \"ExposureTime\".\nIf "
148 "\"ExposureTime\" has reached its maximum value, but the laser lines are still too "
149 "dark, you can increase this parameter.\nIf this parameter has reached its maximum value, "
150 "but the laser lines are still too dark, increase \"DigitalGain\" or "
151 "\"LaserPower\".\nNote: A large value of this parameter weakens the effect of HDR.\n\n* "
152 "Note: this parameter is deprecated since V2.3.0. If your profiler has firmware version >= "
153 "V2.3.0, please use \"AnalogGain\" instead.";
154
155 static constexpr Parameter::Type type = Parameter::Type::_Enum;
156
157 enum struct Value {
158 Gain_1_0,
159 Gain_1_3,
160 Gain_2_0,
161 Gain_3_0,
162 };
163};
164
166{
167public:
168 static constexpr const char* name = "DigitalGain";
169
170 static constexpr const char* description =
171 "Increasing this parameter can enhance the brightness of the raw image. However, a "
172 "relatively large amount of noise will also be introduced.\nIf \"AnalogGain\" has reached "
173 "its maximum value, but the laser lines are still too dark, you can increase \"Digital "
174 "Gain\". \n\nNote: \"Digital Gain\" affects the minimum value of \"Min Grayscale "
175 "Value\".";
176
177 static constexpr Parameter::Type type = Parameter::Type::_Int;
178};
179
181{
182public:
183 static constexpr const char* name = "LaserPower";
184
185 static constexpr const char* description =
186 "Set the power of the emitted laser, which affects the brightness of the laser lines in "
187 "the raw image.\nIf the object is reflective or light-colored, you can decrease this "
188 "parameter to reduce the brightness of the laser lines. If the object is unreflective or "
189 "dark-colored, you can increase this parameter to enhance the brightness of the laser "
190 "lines.\nNote: Even at the same power level, the brightness of the laser emitted by each "
191 "device differs. Please adjust this parameter based on the actual condition of each "
192 "device.";
193
194 static constexpr Parameter::Type type = Parameter::Type::_Int;
195};
196
197} // namespace brightness_settings
198
199namespace roi {
200
202{
203public:
204 static constexpr const char* name = "ZDirectionRoi";
205
206 static constexpr const char* description =
207 "A Z-direction ROI retains only the middle part of the raw image and trims the top and "
208 "bottom parts off.\nSetting a Z-direction ROI can reduce the amount of data to be "
209 "processed and enhance the \"MaxScanRate\".\nThe options are the ratio of the height of "
210 "the trimmed image to the height of the untrimmed image.";
211
212 static constexpr Parameter::Type type = Parameter::Type::_Enum;
213
214 enum struct Value {
215 ImageHeight_1_1,
216 ImageHeight_1_2,
217 ImageHeight_1_4,
218 ImageHeight_1_8,
219 ImageHeight_1_16,
220 };
221};
222
223class ROI
224{
225public:
226 static constexpr const char* name = "ROI";
227
228 static constexpr const char* description =
229 "Setting an ROI in the XZ plane can reduce the amount of data to be processed, and enhance "
230 "the data transmission speed and max scan rate.";
231
232 static constexpr Parameter::Type type = Parameter::Type::_ProfileRoi;
233};
234} // namespace roi
235
236} // namespace eye
237
238} // 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
@ _ProfileRoi
Profile ROI type. See ProfileROI for details.
Definition Parameter.h:39
@ _Float
Double type.
Definition Parameter.h:32
@ Gain_5
LNX-8300, LNX-8080, LNX-75300, and LNX-7580 only.