CVB++ 15.0
detail_config_2d_codes.hpp
1#pragma once
2
3namespace Cvb
4{
5 CVB_BEGIN_INLINE_NS
6
7 namespace CodeReader
8 {
9 namespace Config
10 {
12 {
13 return SetIntProperty(static_cast<int>(Properties::Polarity), static_cast<int>(value));
14 }
15
17 {
18 return static_cast<Config::Polarity>(GetIntProperty(static_cast<int>(Properties::Polarity)));
19 }
20
22 {
23 return SetIntProperty(static_cast<int>(Properties::Mirror), static_cast<int>(value));
24 }
25
27 {
28 return static_cast<bool>(GetIntProperty(static_cast<int>(Properties::Mirror)));
29 }
30
32 {
33 switch (value)
34 {
36 return SetIntProperty(static_cast<int>(Properties::Rect), 1)
37 .SetIntProperty(static_cast<int>(Properties::RectExtended), 0);
39 return SetIntProperty(static_cast<int>(Properties::Rect), 1)
40 .SetIntProperty(static_cast<int>(Properties::RectExtended), 1);
42 return SetIntProperty(static_cast<int>(Properties::Rect), 0)
43 .SetIntProperty(static_cast<int>(Properties::RectExtended), 0);
44 default:
45 return SetIntProperty(static_cast<int>(Properties::Rect), 0)
46 .SetIntProperty(static_cast<int>(Properties::RectExtended), 0);
47 }
48 }
49
51 {
52 const auto rectEx = GetIntProperty(static_cast<int>(Properties::RectExtended));
53 if (rectEx == 1)
54 {
56 }
57 else
58 {
59 const auto rect = GetIntProperty(static_cast<int>(Properties::Rect));
60 if (rect == 1)
61 {
63 }
64 }
66 }
67
69 {
70 return SetIntProperty(static_cast<int>(Properties::MinSize), size);
71 }
72
73 inline int DataMatrix::MinimumSize() const
74 {
75 return GetIntProperty(static_cast<int>(Properties::MinSize));
76 }
77
79 {
80 return SetIntProperty(static_cast<int>(Properties::MaxSize), size);
81 }
82
83 inline int DataMatrix::MaximumSize() const
84 {
85 return GetIntProperty(static_cast<int>(Properties::MaxSize));
86 }
87
89 {
90 return SetIntProperty(static_cast<int>(Properties::MinNumModules), value);
91 }
92
94 {
95 return GetIntProperty(static_cast<int>(Properties::MinNumModules));
96 }
97
99 {
100 return SetIntProperty(static_cast<int>(Properties::MaxNumModules), value);
101 }
102
104 {
105 return GetIntProperty(static_cast<int>(Properties::MaxNumModules));
106 }
107
109 {
110 return SetIntProperty(static_cast<int>(Properties::MaxModuleSize), size);
111 }
112
113 inline int DataMatrix::MaxModuleSize() const
114 {
115 return GetIntProperty(static_cast<int>(Properties::MaxModuleSize));
116 }
117
119 {
120 return SetIntProperty(static_cast<int>(Properties::MaxLineFilterSize), size);
121 }
122
124 {
125 return GetIntProperty(static_cast<int>(Properties::MaxLineFilterSize));
126 }
127#pragma endregion
128
129#pragma region QR and MicroQR
131 {
132 return SetIntProperty(static_cast<int>(Properties::Polarity), static_cast<int>(value));
133 }
134
135 inline Polarity QR::Polarity() const
136 {
137 return static_cast<Config::Polarity>(GetIntProperty(static_cast<int>(Properties::Polarity)));
138 }
139
140 inline QR &QR::SetMirroringEnabled(bool value)
141 {
142 return SetIntProperty(static_cast<int>(Properties::Mirror), static_cast<int>(value));
143 }
144
145 inline bool QR::IsMirroringEnabled() const
146 {
147 return static_cast<bool>(GetIntProperty(static_cast<int>(Properties::Mirror)));
148 }
149
150 inline QR &QR::SetPreciseCornersEnabled(bool value)
151 {
152 return SetIntProperty(static_cast<int>(Properties::PreciseCorner), static_cast<int>(value));
153 }
154
155 inline bool QR::IsPreciseCornersEnabled() const
156 {
157 return static_cast<bool>(GetIntProperty(static_cast<int>(Properties::PreciseCorner)));
158 }
159
160 inline MicroQR &MicroQR::Enable()
161 {
162 CVB_CALL_CAPI_CHECKED(
163 CVCRSetPropertyInt(decoder_.Handle(), static_cast<int>(ReverseMapper<MicroQR>().type), 1));
164 return *this;
165 }
166
167 inline MicroQR &MicroQR::Disable()
168 {
169 CVB_CALL_CAPI_CHECKED(
170 CVCRSetPropertyInt(decoder_.Handle(), static_cast<int>(ReverseMapper<MicroQR>().type), 0));
171 return *this;
172 }
173
174 inline bool MicroQR::Enabled() const
175 {
176 return static_cast<bool>(GetIntProperty(static_cast<int>(ReverseMapper<MicroQR>().type)));
177 }
178#pragma endregion
179
180 } // namespace Config
181 } // namespace CodeReader
182
183 CVB_END_INLINE_NS
184} // namespace Cvb
Configuration class for Data Matrix codes.
Definition decl_config_2d_codes.hpp:36
DataMatrix & SetMirroringEnabled(bool value)
Enables or disables mirroring based on the given value.
Definition detail_config_2d_codes.hpp:21
int MaxNumberModules() const
Gets the maximum number of Data Matrix column modules.
Definition detail_config_2d_codes.hpp:103
DataMatrix & SetMinimumSize(int size)
Sets the minimum Data Matrix size.
Definition detail_config_2d_codes.hpp:68
Config::RectangularDecoding RectangularDecoding() const
Gets the currently configured rectangular decoding mode.
Definition detail_config_2d_codes.hpp:50
int MaximumSize() const
Gets the maximum Data Matrix size.
Definition detail_config_2d_codes.hpp:83
DataMatrix & SetMaximumSize(int size)
Sets the maximum Data Matrix size.
Definition detail_config_2d_codes.hpp:78
int MinNumberModules() const
Gets the minimum number of Data Matrix column modules.
Definition detail_config_2d_codes.hpp:93
DataMatrix & SetMinNumberModules(int value)
Sets the minimum number of Data Matrix column modules.
Definition detail_config_2d_codes.hpp:88
bool IsMirroringEnabled() const
Checks whether mirroring is enabled.
Definition detail_config_2d_codes.hpp:26
DataMatrix & SetPolarity(Polarity value)
Sets polarity mode for decoding.
Definition detail_config_2d_codes.hpp:11
Config::Polarity Polarity() const
Gets the currently configured polarity mode.
Definition detail_config_2d_codes.hpp:16
int MaxLineFilterSize() const
Gets the maximum line filter size in pixels.
Definition detail_config_2d_codes.hpp:123
DataMatrix & SetMaxLineFilterSize(int size)
Sets the maximum line filter size in pixels.
Definition detail_config_2d_codes.hpp:118
DataMatrix & SetMaxNumberModules(int value)
Sets the maximum number of Data Matrix column modules.
Definition detail_config_2d_codes.hpp:98
DataMatrix & SetRectangularDecoding(RectangularDecoding value)
Configures the rectangular decoding mode.
Definition detail_config_2d_codes.hpp:31
DataMatrix & SetMaxModuleSize(int size)
Sets the maximum module size of Data Matrix in pixels.
Definition detail_config_2d_codes.hpp:108
int MaxModuleSize() const
Gets the maximum module size of Data Matrix in pixels.
Definition detail_config_2d_codes.hpp:113
int MinimumSize() const
Gets the minimum Data Matrix size.
Definition detail_config_2d_codes.hpp:73
bool Enabled() const
Checks if decoding for MicroQR codes is enabled.
Definition detail_config_2d_codes.hpp:174
MicroQR & Enable()
Enables decoding for the MicroQR codes.
Definition detail_config_2d_codes.hpp:160
MicroQR & Disable()
Disables decoding for MicroQR codes.
Definition detail_config_2d_codes.hpp:167
QR & SetMirroringEnabled(bool value)
Enables or disables mirroring based on the given value.
Definition detail_config_2d_codes.hpp:140
bool IsMirroringEnabled() const
Check whether mirroring is enabled.
Definition detail_config_2d_codes.hpp:145
bool IsPreciseCornersEnabled() const
Check whether the calculation of more precise corner coordinates is enabled.
Definition detail_config_2d_codes.hpp:155
QR & SetPolarity(Polarity value)
Sets polarity mode for decoding.
Definition detail_config_2d_codes.hpp:130
Config::Polarity Polarity() const
Gets the currently configured polarity mode.
Definition detail_config_2d_codes.hpp:135
QR & SetPreciseCornersEnabled(bool value)
Enables or disables the calculation of more precise corner coordinates.
Definition detail_config_2d_codes.hpp:150
This namespace contains the configuration classes for all supported codes.
Definition decl_config_2d_codes.hpp:14
Polarity
Enumeration of code polarity options for 2D codes.
Definition decl_config_base.hpp:184
RectangularDecoding
Enumeration for rectangular decoding modes for DataMatrix codes.
Definition decl_config_base.hpp:195
@ Simple
Definition decl_config_base.hpp:199
@ None
Definition decl_config_base.hpp:197
@ Extended
Definition decl_config_base.hpp:201
Namespace for all decoding functionalities.
Definition decl_config_2d_codes.hpp:10
Root namespace for the Image Manager interface.
Definition c_bayer_to_rgb.h:17