Mech-Eye API
2.6.0
API reference documentation for Mech-Eye 3D Laser Profiler
Toggle main menu visibility
Loading...
Searching...
No Matches
profiler
parameters
RawImageParameters.h
1
/*******************************************************************************
2
*BSD 3-Clause License
3
*
4
*Copyright (c) 2016-2025, Mech-Mind Robotics Technologies Co., Ltd.
5
*All rights reserved.
6
*
7
*Redistribution and use in source and binary forms, with or without
8
*modification, are permitted provided that the following conditions are met:
9
*
10
*1. Redistributions of source code must retain the above copyright notice, this
11
* list of conditions and the following disclaimer.
12
*
13
*2. Redistributions in binary form must reproduce the above copyright notice,
14
* this list of conditions and the following disclaimer in the documentation
15
* and/or other materials provided with the distribution.
16
*
17
*3. Neither the name of the copyright holder nor the names of its
18
* contributors may be used to endorse or promote products derived from
19
* this software without specific prior written permission.
20
*
21
*THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22
*AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23
*IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
24
*DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
25
*FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26
*DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
27
*SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
28
*CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29
*OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30
*OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31
******************************************************************************/
32
33
#pragma once
34
#include "Parameter.h"
35
36
namespace
mmind {
37
namespace
eye {
38
39
namespace
brightness_settings {
40
41
class
ExposureMode
42
{
43
public
:
44
static
constexpr
const
char
* name =
"ExposureMode"
;
45
46
static
constexpr
const
char
* description =
47
"Select the exposure mode for acquiring the raw image based on the texture and color of "
48
"the target object.\nTimed: suitable for target objects of a single texture or color. "
49
"\nHDR: suitable for target objects with various textures or colors."
;
50
51
static
constexpr
Parameter::Type
type =
Parameter::Type::_Enum
;
52
53
enum struct
Value {
54
HDR,
55
Timed,
56
};
57
};
58
59
class
ExposureTime
60
{
61
public
:
62
static
constexpr
const
char
* name =
"ExposureTime"
;
63
64
static
constexpr
const
char
* description =
65
"The function of this parameter depends on the the value of \"ExposureMode\".\n\nIf "
66
"\"ExposureMode\" is set to \"Timed\": Set the exposure time for acquiring the raw image "
67
"in this parameter. Exposure time affects the brightness and width of the laser lines in "
68
"the raw image, as well as the \"MaxScanRate\" of the laser profiler.\nLonger exposure "
69
"time results in brighter and wider laser lines and lower \"MaxScanRate\". Shorter "
70
"exposure time results in darker and narrower laser lines and higher "
71
"\"MaxScanRate\".\n\nIf \"ExposureMode\" is set to \"HDR\": Set the total time for three "
72
"exposures in this parameter. Then, adjust \"HdrExposureTimeProportion1\" and "
73
"\"HdrExposureTimeProportion2\" to change the lengths of each exposure.\n\nTo enhance the "
74
"\"MaxScanRate\", decrease this parameter and increase \"AnalogGain\".\nIf this parameter "
75
"has reached its maximum value, but the laser lines are still too dark, increase "
76
"\"AnalogGain\".\nIf this parameter has reached its minimum value, but the laser lines are "
77
"still too bright, decrease \"LaserPower\"."
;
78
79
static
constexpr
Parameter::Type
type =
Parameter::Type::_Int
;
80
81
static
constexpr
const
char
* unit =
"us"
;
82
};
83
84
class
HdrExposureTimeProportion1
85
{
86
public
:
87
static
constexpr
const
char
* name =
"HdrExposureTimeProportion1"
;
88
89
static
constexpr
const
char
* description =
90
"Adjust the proportion of the first exposure time in the total exposure time of the HDR "
91
"exposure mode. The value of this parameter is usually greater than the value of "
92
"\"HdrExposureTimeProportion2\"."
;
93
94
static
constexpr
Parameter::Type
type =
Parameter::Type::_Float
;
95
96
static
constexpr
const
char
* unit =
"%"
;
97
};
98
99
class
HdrExposureTimeProportion2
100
{
101
public
:
102
static
constexpr
const
char
* name =
"HdrExposureTimeProportion2"
;
103
104
static
constexpr
const
char
* description =
105
"Adjust the proportion of the second exposure time in the total exposure time of the HDR "
106
"exposure mode. The value of this parameter is usually smaller than the value of "
107
"\"HdrExposureTimeProportion1\" but greater than "
108
"(1-\"HdrExposureTimeProportion1\"-\"HdrExposureTimeProportion2\")."
;
109
110
static
constexpr
Parameter::Type
type =
Parameter::Type::_Float
;
111
112
static
constexpr
const
char
* unit =
"%"
;
113
};
114
115
class
HdrFirstThreshold
116
{
117
public
:
118
static
constexpr
const
char
* name =
"HdrFirstThreshold"
;
119
120
static
constexpr
const
char
* description =
121
"Set the maximum reachable grayscale value of the first exposure time of the HDR exposure "
122
"mode. This is a percentage of the largest grayscale value 255."
;
123
124
static
constexpr
Parameter::Type
type =
Parameter::Type::_Float
;
125
126
static
constexpr
const
char
* unit =
"%"
;
127
};
128
129
class
HdrSecondThreshold
130
{
131
public
:
132
static
constexpr
const
char
* name =
"HdrSecondThreshold"
;
133
134
static
constexpr
const
char
* description =
135
"Set the maximum reachable grayscale value of the second exposure time of the HDR exposure "
136
"mode. This is a percentage of the largest grayscale value 255."
;
137
138
static
constexpr
Parameter::Type
type =
Parameter::Type::_Float
;
139
140
static
constexpr
const
char
* unit =
"%"
;
141
};
142
143
class
AnalogGain
144
{
145
public
:
146
static
constexpr
const
char
* name =
"AnalogGain"
;
147
148
static
constexpr
const
char
* description =
149
"Increasing this parameter can enhance the brightness of the raw image. However, noise "
150
"will also be introduced.\nIf the laser lines are dark, but a high \"MaxScanRate\" is "
151
"needed, you can increase this parameter and decrease \"ExposureTime\".\nIf "
152
"\"ExposureTime\" has reached its maximum value, but the laser lines are still too "
153
"dark, you can increase this parameter.\nIf this parameter has reached its maximum value, "
154
"but the laser lines are still too dark, increase \"DigitalGain\" or "
155
"\"LaserPower\".\nNote: A large value of this parameter weakens the effect of HDR."
;
156
157
static
constexpr
Parameter::Type
type =
Parameter::Type::_Enum
;
158
159
enum struct
Value
{
160
Gain_1,
161
Gain_2,
162
Gain_3,
163
Gain_4,
164
Gain_5
,
165
};
166
};
167
168
class
[[deprecated(
169
"Use class AnalogGain for LNX-8030 profilers with firmware version >= "
170
"V2.3.0."
)]] AnalogGainFor8030;
171
class
AnalogGainFor8030
172
{
173
public
:
174
static
constexpr
const
char
* name =
"AnalogGainFor8030"
;
175
176
static
constexpr
const
char
* description =
177
"Increasing this parameter can enhance the brightness of the raw image. However, noise "
178
"will also be introduced.\nIf the laser lines are dark, but a high \"MaxScanRate\" is "
179
"needed, you can increase this parameter and decrease \"ExposureTime\".\nIf "
180
"\"ExposureTime\" has reached its maximum value, but the laser lines are still too "
181
"dark, you can increase this parameter.\nIf this parameter has reached its maximum value, "
182
"but the laser lines are still too dark, increase \"DigitalGain\" or "
183
"\"LaserPower\".\nNote: A large value of this parameter weakens the effect of HDR.\n\n* "
184
"Note: this parameter is deprecated since V2.3.0. If your profiler has firmware version >= "
185
"V2.3.0, please use \"AnalogGain\" instead."
;
186
187
static
constexpr
Parameter::Type
type =
Parameter::Type::_Enum
;
188
189
enum struct
Value {
190
Gain_1_0,
191
Gain_1_3,
192
Gain_2_0,
193
Gain_3_0,
194
};
195
};
196
197
class
DigitalGain
198
{
199
public
:
200
static
constexpr
const
char
* name =
"DigitalGain"
;
201
202
static
constexpr
const
char
* description =
203
"Increasing this parameter can enhance the brightness of the raw image. However, a "
204
"relatively large amount of noise will also be introduced.\nIf \"AnalogGain\" has reached "
205
"its maximum value, but the laser lines are still too dark, you can increase \"Digital "
206
"Gain\". \n\nNote: \"Digital Gain\" affects the minimum value of \"Min Grayscale "
207
"Value\"."
;
208
209
static
constexpr
Parameter::Type
type =
Parameter::Type::_Int
;
210
};
211
212
class
LaserPower
213
{
214
public
:
215
static
constexpr
const
char
* name =
"LaserPower"
;
216
217
static
constexpr
const
char
* description =
218
"Set the power of the emitted laser, which affects the brightness of the laser lines in "
219
"the raw image.\nIf the object is reflective or light-colored, you can decrease this "
220
"parameter to reduce the brightness of the laser lines. If the object is unreflective or "
221
"dark-colored, you can increase this parameter to enhance the brightness of the laser "
222
"lines.\nNote: Even at the same power level, the brightness of the laser emitted by each "
223
"device differs. Please adjust this parameter based on the actual condition of each "
224
"device."
;
225
226
static
constexpr
Parameter::Type
type =
Parameter::Type::_Int
;
227
};
228
229
}
// namespace brightness_settings
230
231
namespace
roi {
232
233
class
ZDirectionRoi
234
{
235
public
:
236
static
constexpr
const
char
* name =
"ZDirectionRoi"
;
237
238
static
constexpr
const
char
* description =
239
"A Z-direction ROI retains only the middle part of the raw image and trims the top and "
240
"bottom parts off.\nSetting a Z-direction ROI can reduce the amount of data to be "
241
"processed and enhance the \"MaxScanRate\".\nThe options are the ratio of the height of "
242
"the trimmed image to the height of the untrimmed image."
;
243
244
static
constexpr
Parameter::Type
type =
Parameter::Type::_Enum
;
245
246
enum struct
Value {
247
ImageHeight_1_1,
248
ImageHeight_1_2,
249
ImageHeight_1_4,
250
ImageHeight_1_8,
251
ImageHeight_1_16,
252
};
253
};
254
255
class
ROI
256
{
257
public
:
258
static
constexpr
const
char
* name =
"ROI"
;
259
260
static
constexpr
const
char
* description =
261
"Setting an ROI in the XZ plane can reduce the amount of data to be processed, and enhance "
262
"the data transmission speed and max scan rate."
;
263
264
static
constexpr
Parameter::Type
type =
Parameter::Type::_ProfileRoi
;
265
};
266
}
// namespace roi
267
268
}
// namespace eye
269
270
}
// namespace mmind
mmind::eye::Parameter::Type
Type
Describes the device parameter data types.
Definition
Parameter.h:30
mmind::eye::Parameter::_Int
@ _Int
Integer type.
Definition
Parameter.h:31
mmind::eye::Parameter::_Enum
@ _Enum
Enumeration type.
Definition
Parameter.h:34
mmind::eye::Parameter::_ProfileRoi
@ _ProfileRoi
Profile ROI type. See ProfileROI for details.
Definition
Parameter.h:39
mmind::eye::Parameter::_Float
@ _Float
Double type.
Definition
Parameter.h:32
mmind::eye::brightness_settings::AnalogGainFor8030
Definition
RawImageParameters.h:172
mmind::eye::brightness_settings::AnalogGain
Definition
RawImageParameters.h:144
mmind::eye::brightness_settings::AnalogGain::Value
Value
Definition
RawImageParameters.h:159
mmind::eye::brightness_settings::AnalogGain::Value::Gain_5
@ Gain_5
LNX-8300, LNX-8080, LNX-75300, and LNX-7580 only.
Definition
RawImageParameters.h:164
mmind::eye::brightness_settings::DigitalGain
Definition
RawImageParameters.h:198
mmind::eye::brightness_settings::ExposureMode
Definition
RawImageParameters.h:42
mmind::eye::brightness_settings::ExposureTime
Definition
RawImageParameters.h:60
mmind::eye::brightness_settings::HdrExposureTimeProportion1
Definition
RawImageParameters.h:85
mmind::eye::brightness_settings::HdrExposureTimeProportion2
Definition
RawImageParameters.h:100
mmind::eye::brightness_settings::HdrFirstThreshold
Definition
RawImageParameters.h:116
mmind::eye::brightness_settings::HdrSecondThreshold
Definition
RawImageParameters.h:130
mmind::eye::brightness_settings::LaserPower
Definition
RawImageParameters.h:213
mmind::eye::roi::ROI
Definition
RawImageParameters.h:256
mmind::eye::roi::ZDirectionRoi
Definition
RawImageParameters.h:234
Generated by
1.17.0