Mech-Eye API
2.6.0
API reference documentation for Mech-Eye Industrial 3D Camera
Toggle main menu visibility
Loading...
Searching...
No Matches
area_scan_3d_camera
parameters
Projector.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
* Info: https://www.mech-mind.com/
33
*
34
******************************************************************************/
35
#pragma once
36
#include "Parameter.h"
37
38
namespace
mmind {
39
40
namespace
eye {
41
42
namespace
projector_setting {
43
44
class
PowerLevel
45
{
46
public
:
47
static
constexpr
const
char
* name =
"ProjectorPowerLevel"
;
48
49
static
constexpr
const
char
* description =
"Set the brightness level of the projector."
;
50
51
static
constexpr
Parameter::Type
type =
Parameter::Type::_Enum
;
52
53
enum struct
Value
{
54
High
,
55
Normal
,
56
Low
,
57
};
58
};
59
60
class
FringeCodingMode
61
{
62
public
:
63
static
constexpr
const
char
* name =
"ProjectorFringeCodingMode"
;
64
65
static
constexpr
const
char
* description =
66
"Selects the pattern of the structured light to be projected.\n\nNote: The availability "
67
"of the following parameters depends on the camera model. Please refer to the camera's "
68
"user manual for the actual supported parameters.\n* When \"Translucent\" is selected, "
69
"the following tool and parameters are unavailable:\n** \"AntiFlickerMode\" in the "
70
"\"mmind::eye::projector_setting\" namespace\n** \"EdgePreservation\", "
71
"\"EnableDistortionCorrection\", and \"DistortionCorrection\" in the "
72
"\"mmind::eye::pointcloud_processing_setting\" namespace (not available on all models)\n* "
73
"When \"Translucent\" is selected, you can fill in the missing points in the point cloud "
74
"by adjusting \"GapFilling\" in the \"mmind::eye::projector_setting\" namespace.\n* When "
75
"\"Reflective\" is selected, the following tool and parameters are unavailable:\n** "
76
"\"AntiFlickerMode\" in the \"mmind::eye::projector_setting\" namespace\n** "
77
"\"EnableDistortionCorrection\", \"DistortionCorrection\" and \"FringeMinThreshold\" in "
78
"the \"mmind::eye::pointcloud_processing_setting\" namespace (not available on all "
79
"models)"
;
80
81
static
constexpr
Parameter::Type
type =
Parameter::Type::_Enum
;
82
83
enum struct
Value
{
84
Fast
,
86
Accurate
,
88
Translucent
,
90
Reflective
,
93
};
94
};
95
96
class
AntiFlickerMode
97
{
98
public
:
99
static
constexpr
const
char
* name =
"AntiFlickerMode"
;
100
101
static
constexpr
const
char
* description =
102
"Flicker refers to the rapid and periodical change in the intensity of artificial light. "
103
"This phenomenon can cause fluctuations in the depth data. Such fluctuation can be reduced "
104
"by adjusting the projection frequency of the structured light.\n\nNote: "
105
"\"AntiFlickerMode\" is unavailable when \"FringeCodingMode\" is set to \"Translucent\" or "
106
"\"Reflective\"."
;
107
108
static
constexpr
Parameter::Type
type =
Parameter::Type::_Enum
;
109
110
enum struct
Value
{
111
Off
,
112
AC50Hz
,
113
AC60Hz
,
114
};
115
};
116
117
class
InterferenceSuppression
118
{
119
public
:
120
static
constexpr
const
char
* name =
"InterferenceSuppression"
;
121
122
static
constexpr
const
char
* description =
123
"When enabled, suppresses the impact of short-duration, low-frequency, rapid, and "
124
"sudden pulse-like flicker on data acquisition, improving acquisition stability."
125
"\n\nNote: \"InterferenceSuppression\" is unavailable when "
126
"\"FringeCodingMode\" is set to \"Accurate\"."
;
127
128
static
constexpr
Parameter::Type
type =
Parameter::Type::_Bool
;
129
};
130
131
class
ProcessingMode
132
{
133
public
:
134
static
constexpr
const
char
* name =
"ProjectorProcessingMode"
;
135
136
static
constexpr
const
char
* description =
137
"Select the data processing mode for the \"Reflective\" fringe coding mode.\n\n* Faster: "
138
"provides faster processing speed, but the depth data might have missing points. Suitable "
139
"for scenarios with relatively simple reflective conditions.\n* More Complete: provides "
140
"more complete depth data, but the processing speed is slower. Suitable for scenarios with "
141
"complex reflective conditions, such as a bin whose walls often cause interreflection."
;
142
143
static
constexpr
Parameter::Type
type =
Parameter::Type::_Enum
;
144
145
enum struct
Value
{
146
Faster
,
148
MoreComplete
,
151
MetalPlate
,
154
155
};
156
};
157
158
}
// namespace projector_setting
159
160
}
// namespace eye
161
162
}
// namespace mmind
mmind::eye::Parameter::Type
Type
Describes the device parameter data types.
Definition
Parameter.h:30
mmind::eye::Parameter::_Enum
@ _Enum
Enumeration type.
Definition
Parameter.h:34
mmind::eye::Parameter::_Bool
@ _Bool
Boolean type.
Definition
Parameter.h:33
mmind::eye::projector_setting::AntiFlickerMode
Definition
Projector.h:97
mmind::eye::projector_setting::AntiFlickerMode::Value
Value
Definition
Projector.h:110
mmind::eye::projector_setting::AntiFlickerMode::Value::AC50Hz
@ AC50Hz
The AC frequency is 50Hz in most countries.
Definition
Projector.h:112
mmind::eye::projector_setting::AntiFlickerMode::Value::Off
@ Off
No processing for anti-flicker.
Definition
Projector.h:111
mmind::eye::projector_setting::AntiFlickerMode::Value::AC60Hz
@ AC60Hz
The AC frequency in the U.S. and some Asian countries is 60Hz.
Definition
Projector.h:113
mmind::eye::projector_setting::FringeCodingMode
Definition
Projector.h:61
mmind::eye::projector_setting::FringeCodingMode::Value
Value
Definition
Projector.h:83
mmind::eye::projector_setting::FringeCodingMode::Value::Translucent
@ Translucent
Definition
Projector.h:88
mmind::eye::projector_setting::FringeCodingMode::Value::Accurate
@ Accurate
Definition
Projector.h:86
mmind::eye::projector_setting::FringeCodingMode::Value::Reflective
@ Reflective
Definition
Projector.h:90
mmind::eye::projector_setting::FringeCodingMode::Value::Fast
@ Fast
Definition
Projector.h:84
mmind::eye::projector_setting::InterferenceSuppression
Definition
Projector.h:118
mmind::eye::projector_setting::PowerLevel
Definition
Projector.h:45
mmind::eye::projector_setting::PowerLevel::Value
Value
Definition
Projector.h:53
mmind::eye::projector_setting::PowerLevel::Value::Low
@ Low
Low level is used for scanning reflective objects.
Definition
Projector.h:56
mmind::eye::projector_setting::PowerLevel::Value::High
@ High
High level is often used for scanning dark objects.
Definition
Projector.h:54
mmind::eye::projector_setting::PowerLevel::Value::Normal
@ Normal
Normal level is mostly used.
Definition
Projector.h:55
mmind::eye::projector_setting::ProcessingMode
Definition
Projector.h:132
mmind::eye::projector_setting::ProcessingMode::Value
Value
Definition
Projector.h:145
mmind::eye::projector_setting::ProcessingMode::Value::Faster
@ Faster
Suitable for scenarios with relatively simple reflective conditions.
Definition
Projector.h:146
mmind::eye::projector_setting::ProcessingMode::Value::MoreComplete
@ MoreComplete
Definition
Projector.h:148
mmind::eye::projector_setting::ProcessingMode::Value::MetalPlate
@ MetalPlate
Definition
Projector.h:151
Generated by
1.17.0