set_data_code_2d_paramset_data_code_2d_paramSetDataCode2dParamset_data_code_2d_paramSetDataCode2dParamSetDataCode2dParam — Set selected parameters of the 2D data code model.
Note that the symbol structure of GS1 DataMatrix, GS1 QR Code, and
GS1 Aztec is identical to the structure of ECC 200, QR Code, and Aztec
Code, respectively. Therefore, all symbology specific parameters applying
to ECC 200, QR Code, or Aztec Code apply to their corresponding GS1
variant as well. In the following, the explicit enumeration of the
parameters for any particular GS1 code is omitted for sake of readability.
Instead, the relevant parameters names are to be inferred from the
parameters for the corresponding non-GS1 code type or can be explicitly
queried by query_data_code_2d_paramsquery_data_code_2d_paramsQueryDataCode2dParamsquery_data_code_2d_paramsQueryDataCode2dParamsQueryDataCode2dParams with parameter
'set_model_params'"set_model_params""set_model_params""set_model_params""set_model_params""set_model_params".
The following overview lists the different generic parameters with
the respective value ranges and default values in standard mode
('standard_recognition'"standard_recognition""standard_recognition""standard_recognition""standard_recognition""standard_recognition"). If the default values in enhanced
mode ('enhanced_recognition'"enhanced_recognition""enhanced_recognition""enhanced_recognition""enhanced_recognition""enhanced_recognition") differ from those in the
standard mode, they are listed additionally. The same holds, if the
default values in the maximum mode 'maximum_recognition'"maximum_recognition""maximum_recognition""maximum_recognition""maximum_recognition""maximum_recognition"
differ from those in the enhanced mode:
Reset all model parameters to one of the three basic
default settings standard, enhanced, or
maximum (see the following summary and
create_data_code_2d_modelcreate_data_code_2d_modelCreateDataCode2dModelcreate_data_code_2d_modelCreateDataCode2dModelCreateDataCode2dModel). In addition to the
parameter values, the training state of the model is reset.
Values:'standard_recognition'"standard_recognition""standard_recognition""standard_recognition""standard_recognition""standard_recognition",
'enhanced_recognition'"enhanced_recognition""enhanced_recognition""enhanced_recognition""enhanced_recognition""enhanced_recognition",
'maximum_recognition'"maximum_recognition""maximum_recognition""maximum_recognition""maximum_recognition""maximum_recognition"
Attention: If
this parameter is set together with a list of other
parameters, this parameter must be at the first position.
Size and shape of the symbol:
Data matrix ECC 200 (including the finder pattern):
Attention: After calling
set_data_code_2d_paramset_data_code_2d_paramSetDataCode2dParamset_data_code_2d_paramSetDataCode2dParamSetDataCode2dParam to change size or shape of
the symbol, the parameters are evaluated in the given
order. After each parameter, the consistency of the current
settings is checked, and if necessary the current settings
are adjusted. Therefore the order in which the changes are
done may influence the final setting.
Attention: Changing 'symbol_cols_min'"symbol_cols_min""symbol_cols_min""symbol_cols_min""symbol_cols_min""symbol_cols_min" sets
'symbol_shape'"symbol_shape""symbol_shape""symbol_shape""symbol_shape""symbol_shape" to 'any'"any""any""any""any""any". If the size of the
current symbol is only consistent with one shape type
'symbol_shape'"symbol_shape""symbol_shape""symbol_shape""symbol_shape""symbol_shape" is restricted to 'rectangle'"rectangle""rectangle""rectangle""rectangle""rectangle" or
'square'"square""square""square""square""square".
Attention: Changing 'symbol_cols_max'"symbol_cols_max""symbol_cols_max""symbol_cols_max""symbol_cols_max""symbol_cols_max" sets
'symbol_shape'"symbol_shape""symbol_shape""symbol_shape""symbol_shape""symbol_shape" to 'any'"any""any""any""any""any". If the size of the
current symbol is only consistent with one shape type
'symbol_shape'"symbol_shape""symbol_shape""symbol_shape""symbol_shape""symbol_shape" is restricted to 'rectangle'"rectangle""rectangle""rectangle""rectangle""rectangle" or
'square'"square""square""square""square""square".
Attention: Changing 'symbol_rows_min'"symbol_rows_min""symbol_rows_min""symbol_rows_min""symbol_rows_min""symbol_rows_min" sets
'symbol_shape'"symbol_shape""symbol_shape""symbol_shape""symbol_shape""symbol_shape" to 'any'"any""any""any""any""any". If the size of the
current symbol is only consistent with one shape type
'symbol_shape'"symbol_shape""symbol_shape""symbol_shape""symbol_shape""symbol_shape" is restricted to 'rectangle'"rectangle""rectangle""rectangle""rectangle""rectangle" or
'square'"square""square""square""square""square".
Attention: Changing 'symbol_rows_max'"symbol_rows_max""symbol_rows_max""symbol_rows_max""symbol_rows_max""symbol_rows_max" sets
'symbol_shape'"symbol_shape""symbol_shape""symbol_shape""symbol_shape""symbol_shape" to 'any'"any""any""any""any""any". If the size of the
current symbol is only consistent with one shape type
'symbol_shape'"symbol_shape""symbol_shape""symbol_shape""symbol_shape""symbol_shape" is restricted to 'rectangle'"rectangle""rectangle""rectangle""rectangle""rectangle" or
'square'"square""square""square""square""square".
Set 'symbol_cols_min'"symbol_cols_min""symbol_cols_min""symbol_cols_min""symbol_cols_min""symbol_cols_min" and 'symbol_cols_max'"symbol_cols_max""symbol_cols_max""symbol_cols_max""symbol_cols_max""symbol_cols_max"
to the given value.
Value range: [10, 12, 14,
.. 144]
Attention: Changing 'symbol_cols'"symbol_cols""symbol_cols""symbol_cols""symbol_cols""symbol_cols" sets
'symbol_shape'"symbol_shape""symbol_shape""symbol_shape""symbol_shape""symbol_shape" to 'any'"any""any""any""any""any". If the size of the
current symbol is only consistent with one shape type
'symbol_shape'"symbol_shape""symbol_shape""symbol_shape""symbol_shape""symbol_shape" is restricted to 'rectangle'"rectangle""rectangle""rectangle""rectangle""rectangle" or
'square'"square""square""square""square""square".
Set 'symbol_rows_min'"symbol_rows_min""symbol_rows_min""symbol_rows_min""symbol_rows_min""symbol_rows_min" and 'symbol_rows_max'"symbol_rows_max""symbol_rows_max""symbol_rows_max""symbol_rows_max""symbol_rows_max"
to the given value.
Value range: [8, 10, 12,
.. 144]
Attention: Changing 'symbol_rows'"symbol_rows""symbol_rows""symbol_rows""symbol_rows""symbol_rows" sets
'symbol_shape'"symbol_shape""symbol_shape""symbol_shape""symbol_shape""symbol_shape" to 'any'"any""any""any""any""any". If the size of the
current symbol is only consistent with one shape type
'symbol_shape'"symbol_shape""symbol_shape""symbol_shape""symbol_shape""symbol_shape" is restricted to 'rectangle'"rectangle""rectangle""rectangle""rectangle""rectangle" or
'square'"square""square""square""square""square".
Possible restrictions on the module shape
('rectangle'"rectangle""rectangle""rectangle""rectangle""rectangle" and/or 'square'"square""square""square""square""square").
Attention: setting the symbol shape all previously made
restrictions concerning the symbol size may change. For
'square'"square""square""square""square""square" the minimum of 'symbol_cols_min'"symbol_cols_min""symbol_cols_min""symbol_cols_min""symbol_cols_min""symbol_cols_min"
and 'symbol_rows_min'"symbol_rows_min""symbol_rows_min""symbol_rows_min""symbol_rows_min""symbol_rows_min" and the maximum of
'symbol_cols_max'"symbol_cols_max""symbol_cols_max""symbol_cols_max""symbol_cols_max""symbol_cols_max" and 'symbol_rows_max'"symbol_rows_max""symbol_rows_max""symbol_rows_max""symbol_rows_max""symbol_rows_max" will be
used.
Additional restrictions can be seen in the following table:
Furthermore, if 'symbol_cols_min'"symbol_cols_min""symbol_cols_min""symbol_cols_min""symbol_cols_min""symbol_cols_min" is larger than
'symbol_rows_max'"symbol_rows_max""symbol_rows_max""symbol_rows_max""symbol_rows_max""symbol_rows_max", the setting for 'symbol_shape'"symbol_shape""symbol_shape""symbol_shape""symbol_shape""symbol_shape"
is ignored and its value set to 'rectangle'"rectangle""rectangle""rectangle""rectangle""rectangle".
Since HALCON 7.1.1 the same search algorithm is used for both
shapes if 'finder_pattern_tolerance'"finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance" is set to
'low'"low""low""low""low""low". Thus, 'symbol_shape'"symbol_shape""symbol_shape""symbol_shape""symbol_shape""symbol_shape" has no effect
for the symbol search in this case.
However, if
'finder_pattern_tolerance'"finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance" is set to
'high'"high""high""high""high""high" or 'any'"any""any""any""any""any", the value of
'symbol_shape'"symbol_shape""symbol_shape""symbol_shape""symbol_shape""symbol_shape" may speed up the symbol search
significantly if it is set to 'rectangle'"rectangle""rectangle""rectangle""rectangle""rectangle" or
'square'"square""square""square""square""square".
Set 'symbol_cols_min'"symbol_cols_min""symbol_cols_min""symbol_cols_min""symbol_cols_min""symbol_cols_min" and 'symbol_rows_min'"symbol_rows_min""symbol_rows_min""symbol_rows_min""symbol_rows_min""symbol_rows_min"
to the given value and 'symbol_shape'"symbol_shape""symbol_shape""symbol_shape""symbol_shape""symbol_shape" to
'square'"square""square""square""square""square".
Set 'symbol_cols_max'"symbol_cols_max""symbol_cols_max""symbol_cols_max""symbol_cols_max""symbol_cols_max" and 'symbol_rows_max'"symbol_rows_max""symbol_rows_max""symbol_rows_max""symbol_rows_max""symbol_rows_max"
to the given value and 'symbol_shape'"symbol_shape""symbol_shape""symbol_shape""symbol_shape""symbol_shape" to
'square'"square""square""square""square""square".
Set 'symbol_cols_min'"symbol_cols_min""symbol_cols_min""symbol_cols_min""symbol_cols_min""symbol_cols_min", 'symbol_cols_max'"symbol_cols_max""symbol_cols_max""symbol_cols_max""symbol_cols_max""symbol_cols_max",
'symbol_rows_min'"symbol_rows_min""symbol_rows_min""symbol_rows_min""symbol_rows_min""symbol_rows_min" and 'symbol_rows_max'"symbol_rows_max""symbol_rows_max""symbol_rows_max""symbol_rows_max""symbol_rows_max" to
the given value and 'symbol_shape'"symbol_shape""symbol_shape""symbol_shape""symbol_shape""symbol_shape" to 'square'"square""square""square""square""square".
Minimum symbol version.
The symbol version is directly linked to the symbol size.
Symbols of version 1 are 21x21 moduls in size,
version 2 = 25x25 moduls, etc. up to version
40 = 177x177 moduls.
The maximum size of Model 1 symbols is 73x73 =
version 14.
Set 'version_min'"version_min""version_min""version_min""version_min""version_min" and 'version_max'"version_max""version_max""version_max""version_max""version_max"
to the same value.
Minimum size of the symbol in modules.
This parameter can be used as an alternative to
'version_min'"version_min""version_min""version_min""version_min""version_min".
Maximum size of the symbol in modules.
This parameter can be used as an alternative to
'version_max'"version_max""version_max""version_max""version_max""version_max":
Set 'symbol_size_min'"symbol_size_min""symbol_size_min""symbol_size_min""symbol_size_min""symbol_size_min" and 'symbol_size_max'"symbol_size_max""symbol_size_max""symbol_size_max""symbol_size_max""symbol_size_max"
to the same value.
Minimum symbol version.
The symbol version is directly linked to the symbol size.
Symbols are between 11x11 (version M1) and
17x17 (version M4) modules in size.
Set 'version_min'"version_min""version_min""version_min""version_min""version_min" and 'version_max'"version_max""version_max""version_max""version_max""version_max"
to the same value.
Minimum size of the symbol in modules.
This parameter can be used as an alternative to
'version_min'"version_min""version_min""version_min""version_min""version_min".
Maximum size of the symbol in modules.
This parameter can be used as an alternative to
'version_max'"version_max""version_max""version_max""version_max""version_max":
Set 'symbol_size_min'"symbol_size_min""symbol_size_min""symbol_size_min""symbol_size_min""symbol_size_min" and 'symbol_size_max'"symbol_size_max""symbol_size_max""symbol_size_max""symbol_size_max""symbol_size_max"
to the same value.
Set 'symbol_cols_min'"symbol_cols_min""symbol_cols_min""symbol_cols_min""symbol_cols_min""symbol_cols_min" and 'symbol_cols_max'"symbol_cols_max""symbol_cols_max""symbol_cols_max""symbol_cols_max""symbol_cols_max"
to the same value.
Set 'symbol_rows_min'"symbol_rows_min""symbol_rows_min""symbol_rows_min""symbol_rows_min""symbol_rows_min" and 'symbol_rows_max'"symbol_rows_max""symbol_rows_max""symbol_rows_max""symbol_rows_max""symbol_rows_max"
to the same value.
Aztec Code (including the finder pattern):
'format'"format""format""format""format""format":
Format of the Aztec Code: space separated list with the
values 'compact'"compact""compact""compact""compact""compact", 'full_range'"full_range""full_range""full_range""full_range""full_range", or
'rune'"rune""rune""rune""rune""rune".
Set 'symbol_size_min'"symbol_size_min""symbol_size_min""symbol_size_min""symbol_size_min""symbol_size_min" and 'symbol_size_max'"symbol_size_max""symbol_size_max""symbol_size_max""symbol_size_max""symbol_size_max"
to the same value.
Describes the polarity of the symbol in the image, i.e.,
the parameter determines if the symbol appears light on a
dark background or dark on a light background.
Minimum contrast between the foreground and the background of
the symbol (this measure corresponds with the minimum
gradient between the symbol's foreground and the background).
Robustness of the decoding of data codes with very small
module sizes. Setting the parameter
'small_modules_robustness'"small_modules_robustness""small_modules_robustness""small_modules_robustness""small_modules_robustness""small_modules_robustness" to 'high'"high""high""high""high""high"
increases the likelihood of being able to
decode data codes with very small module sizes. Additionally,
in that case the minimum module size should also be adapted
accordingly, thus 'module_size_min'"module_size_min""module_size_min""module_size_min""module_size_min""module_size_min" and
'module_width_min'"module_width_min""module_width_min""module_width_min""module_width_min""module_width_min" (PDF417) should be set to
the expected minimum module size and width, respectively. Setting
'small_modules_robustness'"small_modules_robustness""small_modules_robustness""small_modules_robustness""small_modules_robustness""small_modules_robustness" to 'high'"high""high""high""high""high" can
significantly increase the internal memory usage of
find_data_code_2dfind_data_code_2dFindDataCode2dfind_data_code_2dFindDataCode2dFindDataCode2d. Thus, in the default case
'small_modules_robustness'"small_modules_robustness""small_modules_robustness""small_modules_robustness""small_modules_robustness""small_modules_robustness" should be set to 'low'"low""low""low""low""low".
If 'small_modules_robustness'"small_modules_robustness""small_modules_robustness""small_modules_robustness""small_modules_robustness""small_modules_robustness" is set to 'high'"high""high""high""high""high"
the maximal accepted image size is bisected (see
get_systemget_systemGetSystemget_systemGetSystemGetSystem'halcon_xl'"halcon_xl""halcon_xl""halcon_xl""halcon_xl""halcon_xl").
Minimum size of the modules in the image in pixels. Please
note that for optimal reading performance a module size of
at least 3-4 pixels is recommended.
Set 'module_size_min'"module_size_min""module_size_min""module_size_min""module_size_min""module_size_min" and 'module_size_max'"module_size_max""module_size_max""module_size_max""module_size_max""module_size_max"
to the same value.
The gap between modules can be set via the 'module_gap*'"module_gap*""module_gap*""module_gap*""module_gap*""module_gap*"
parameters as explained in the following paragraph:
It is possible to specify whether neighboring foreground
modules are connected or whether there is or may be a gap between
them.
If the foreground modules are connected and fill the module
space completely, the gap parameter can be set to 'no'"no""no""no""no""no".
The parameter is set to 'small'"small""small""small""small""small" if there is a very
small gap between two modules, i.e.,< 10% of the module size.
It can be set to 'big'"big""big""big""big""big"
if the gap is bigger
(in relation to the module size: < 50%).
The last two settings may also be useful if the foreground
modules - although being connected - appear thinner as
their entitled space (e.g., as a result of blooming caused by a
bright illuminant).
If the foreground modules appear only as very small dots,
in general, an
appropriate preprocessing of the image for detecting or
enlarging the modules will be necessary (e.g., by
gray_erosion_shapegray_erosion_shapeGrayErosionShapegray_erosion_shapeGrayErosionShapeGrayErosionShape or gray_dilation_shapegray_dilation_shapeGrayDilationShapegray_dilation_shapeGrayDilationShapeGrayDilationShape).
Set 'module_gap_col_min'"module_gap_col_min""module_gap_col_min""module_gap_col_min""module_gap_col_min""module_gap_col_min" and
'module_gap_col_max'"module_gap_col_max""module_gap_col_max""module_gap_col_max""module_gap_col_max""module_gap_col_max" to the same value.
Set 'module_gap_row_min'"module_gap_row_min""module_gap_row_min""module_gap_row_min""module_gap_row_min""module_gap_row_min" and
'module_gap_row_max'"module_gap_row_max""module_gap_row_max""module_gap_row_max""module_gap_row_max""module_gap_row_max" to the same value.
Set 'module_gap_col_min'"module_gap_col_min""module_gap_col_min""module_gap_col_min""module_gap_col_min""module_gap_col_min" and
'module_gap_row_min'"module_gap_row_min""module_gap_row_min""module_gap_row_min""module_gap_row_min""module_gap_row_min" to the same value.
Set 'module_gap_col_max'"module_gap_col_max""module_gap_col_max""module_gap_col_max""module_gap_col_max""module_gap_col_max" and
'module_gap_row_max'"module_gap_row_max""module_gap_row_max""module_gap_row_max""module_gap_row_max""module_gap_row_max" to the same value.
Set 'module_gap_col_min'"module_gap_col_min""module_gap_col_min""module_gap_col_min""module_gap_col_min""module_gap_col_min",
'module_gap_col_max'"module_gap_col_max""module_gap_col_max""module_gap_col_max""module_gap_col_max""module_gap_col_max", 'module_gap_row_min'"module_gap_row_min""module_gap_row_min""module_gap_row_min""module_gap_row_min""module_gap_row_min", and
'module_gap_row_max'"module_gap_row_max""module_gap_row_max""module_gap_row_max""module_gap_row_max""module_gap_row_max" to the same value.
Set 'module_width_min'"module_width_min""module_width_min""module_width_min""module_width_min""module_width_min" and 'module_width_max'"module_width_max""module_width_max""module_width_max""module_width_max""module_width_max"
to the same value.
Set 'module_aspect_min'"module_aspect_min""module_aspect_min""module_aspect_min""module_aspect_min""module_aspect_min" and
'module_aspect_max'"module_aspect_max""module_aspect_max""module_aspect_max""module_aspect_max""module_aspect_max" to the same value.
Maximum deviation of the angle of the L-shaped finder pattern
from the (ideal) right angle (the angle is specified
in radians and corresponds to the distortion that occurs
when the symbol is printed or during the image
acquisition).
Tolerance of the search with respect to a defect or
partially occluded finder pattern. The finder pattern
includes the L-shaped side as well as the opposite
alternating side. Dependent on this parameter, different
algorithms are used during the symbol search in
find_data_code_2dfind_data_code_2dFindDataCode2dfind_data_code_2dFindDataCode2dFindDataCode2d. In one case ('low'"low""low""low""low""low"),
it is assumed that the finder pattern is present to a high
degree and shows almost no disturbances. In the other case
('high'"high""high""high""high""high"), the finder pattern may be defect or
partially occluded without influencing the recognition and
the reading of the symbol.
Note, however,
that in this mode the parameters for the symbol search
should be restricted as narrow as possible by using
set_data_code_2d_paramset_data_code_2d_paramSetDataCode2dParamset_data_code_2d_paramSetDataCode2dParamSetDataCode2dParam because otherwise the
run-time of find_data_code_2dfind_data_code_2dFindDataCode2dfind_data_code_2dFindDataCode2dFindDataCode2d may significantly
increase.
Also note that the two algorithms slightly differ
from each other in terms of robustness. This may lead to
different results depending on the value of
'finder_pattern_tolerance'"finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance" even if the finder
pattern of the symbol is not disturbed. For example, if
'high'"high""high""high""high""high" is chosen, only symbols with an equidistant
module grid can be found (see below), and hence the
robustness to perspective distortions is
decreased. Finally, if 'finder_pattern_tolerance'"finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance"
is set to 'any'"any""any""any""any""any" both algorithms are applied.
Describes the tolerance of the search with respect to local
contrast variations (e.g., in the presence of glare or
reflections). Depending on the value of the parameter
two different algorithms are applied. If
'contrast_tolerance'"contrast_tolerance""contrast_tolerance""contrast_tolerance""contrast_tolerance""contrast_tolerance" is set to 'high'"high""high""high""high""high" the
robustness in the presence of strong local contrast
variations is improved. In the case where
'contrast_tolerance'"contrast_tolerance""contrast_tolerance""contrast_tolerance""contrast_tolerance""contrast_tolerance" is set to 'low'"low""low""low""low""low" the
algorithm less robust in case of strong local contrast
variations, however it is faster and still able to handle
contrast variations under normal circumstances and
therefore should be used in most cases. If
'contrast_tolerance'"contrast_tolerance""contrast_tolerance""contrast_tolerance""contrast_tolerance""contrast_tolerance" is set to 'any'"any""any""any""any""any" both
algorithms are applied.
Describes whether the size of the modules may vary (in a
specific range) or not. Dependent on this parameter
different algorithms are used for calculating the module's
center positions. If it is set to 'fixed'"fixed""fixed""fixed""fixed""fixed", an
equidistant grid is used. Allowing a variable module size
('variable'"variable""variable""variable""variable""variable"), the grid is aligned only to the
alternating side of the finder pattern. With
'any'"any""any""any""any""any" both approaches are tested one after the
other. Please note that the value of 'module_grid'"module_grid""module_grid""module_grid""module_grid""module_grid"
is ignored if 'finder_pattern_tolerance'"finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance" is set to
'high'"high""high""high""high""high". In this case an equidistant grid is
assumed.
Tolerance of the search with respect to a defect or partially
occluded finder pattern. Depending on this parameter, different
algorithms are used during the symbol search in
find_data_code_2dfind_data_code_2dFindDataCode2dfind_data_code_2dFindDataCode2dFindDataCode2d. In one case ('low'"low""low""low""low""low"), it is
assumed that all rings of the finder pattern can be extracted. In
the other case ('high'"high""high""high""high""high") it is assumed that at least one of
the rings of the finder pattern can be extracted.
As a consequence the runtime of the reader increases, if this
parameter is set to 'high'"high""high""high""high""high".
To increase the robustness of the Aztec Code reader, a number of
additional search levels (in addition to the search levels derived
from the minimum and maximum module dimensions) can be specified via
this parameter. Be aware that this increases the runtime of the
reader, especially if no code is found.
Controls the behavior of find_data_code_2dfind_data_code_2dFindDataCode2dfind_data_code_2dFindDataCode2dFindDataCode2d while
detecting symbols that could be read but that do not fit
the model restrictions on the size of the symbols.
They can be rejected (strict model, set to 'yes'"yes""yes""yes""yes""yes") or
returned as a result independent of their size and the
size specified in the model (lax model, set to
'no'"no""no""no""no""no").
The temporal accuracy is about 10 ms. It
depends on several factors including the speed of your computer
and the 'timer_mode'"timer_mode""timer_mode""timer_mode""timer_mode""timer_mode" set via set_systemset_systemSetSystemset_systemSetSystemSetSystem.
Controls the behavior of find_data_code_2dfind_data_code_2dFindDataCode2dfind_data_code_2dFindDataCode2dFindDataCode2d while
detecting symbols that could be read but show defects in
their quiet zone. If 'strict_quiet_zone'"strict_quiet_zone""strict_quiet_zone""strict_quiet_zone""strict_quiet_zone""strict_quiet_zone" is set to
'yes'"yes""yes""yes""yes""yes" the quiet zone of all decoded symbol is validated
similar to the method used for print quality inspection.
Symbols with poor grades for their quiet zone are not returned
as a result. Their 'status'"status""status""status""status""status" is set to
'quiet zone is missing'"quiet zone is missing""quiet zone is missing""quiet zone is missing""quiet zone is missing""quiet zone is missing".
If 'strict_quiet_zone'"strict_quiet_zone""strict_quiet_zone""strict_quiet_zone""strict_quiet_zone""strict_quiet_zone" is set to 'no'"no""no""no""no""no"
(this is the default case), all readable symbols are
returned as a result.
When setting the model parameters, attention should be payed
especially to the following issues:
Symbols whose size does not comply with the size restrictions
made in the model (with the generic parameters
'symbol_rows*'"symbol_rows*""symbol_rows*""symbol_rows*""symbol_rows*""symbol_rows*", 'symbol_cols*'"symbol_cols*""symbol_cols*""symbol_cols*""symbol_cols*""symbol_cols*",
'symbol_size*'"symbol_size*""symbol_size*""symbol_size*""symbol_size*""symbol_size*", or 'version*'"version*""version*""version*""version*""version*") will not be
read if 'strict_model'"strict_model""strict_model""strict_model""strict_model""strict_model" is set to 'yes'"yes""yes""yes""yes""yes", which
is the default.
This behavior is useful if symbols of a specific size have to be
detected while other symbols should be ignored.
On the other hand, neglecting this parameter can lead to
problems, e.g., if one symbol of an image sequence is
used to adjust the model (including the symbol size), but later
in the application the symbol size varies, which is quite common
in practice.
The run-time of find_data_code_2dfind_data_code_2dFindDataCode2dfind_data_code_2dFindDataCode2dFindDataCode2d depends mostly on the
following model parameters, namely in cases where the requested
number of symbols cannot be found in the image:
'polarity'"polarity""polarity""polarity""polarity""polarity", 'module_size_min'"module_size_min""module_size_min""module_size_min""module_size_min""module_size_min" (ECC 200, QR
Code, and Micro QR Code) and 'module_size_min'"module_size_min""module_size_min""module_size_min""module_size_min""module_size_min" together with
'module_aspect_min'"module_aspect_min""module_aspect_min""module_aspect_min""module_aspect_min""module_aspect_min" (PDF417), and if the minimum module
size is very small also the parameters 'module_gap_*'"module_gap_*""module_gap_*""module_gap_*""module_gap_*""module_gap_*"
(ECC 200, Aztec, QR Code, and Micro QR Code), for QR Code also
'position_pattern_min'"position_pattern_min""position_pattern_min""position_pattern_min""position_pattern_min""position_pattern_min".
For ECC 200 symbols, if
'finder_pattern_tolerance'"finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance" is set to 'high'"high""high""high""high""high" or
'any'"any""any""any""any""any", the symbol size should be restricted with
'symbol_size_min'"symbol_size_min""symbol_size_min""symbol_size_min""symbol_size_min""symbol_size_min", 'symbol_size_max'"symbol_size_max""symbol_size_max""symbol_size_max""symbol_size_max""symbol_size_max",
'symbol_size'"symbol_size""symbol_size""symbol_size""symbol_size""symbol_size", and 'symbol_shape'"symbol_shape""symbol_shape""symbol_shape""symbol_shape""symbol_shape" as narrow as
possible.
* This examples shows how a model can be adapted to a specific symbol if
* the symbol parameters are known
* Create a model for reading Data matrix ECC 200 codes
create_data_code_2d_model ('Data Matrix ECC 200', [], [], DataCodeHandle)
* Restrict the model by setting the module size
set_data_code_2d_param (DataCodeHandle, \
['module_size_min','module_size_max'], [4,7])
* Change the polarity setting of the model from 'dark_on_light' to
* 'light_on_dark' and, at the same time, specify a new minimum contrast
set_data_code_2d_param (DataCodeHandle, ['polarity','contrast_min'], \
['light_on_dark',10])
* Read an image
read_image (Image, 'datacode/ecc200/ecc200_cpu_010')
* Read the symbol in the image
find_data_code_2d (Image, SymbolXLDs, DataCodeHandle, [], [], \
ResultHandles, DecodedDataStrings)
* Clear the model
clear_data_code_2d_model (DataCodeHandle)
The operator set_data_code_2d_paramset_data_code_2d_paramSetDataCode2dParamset_data_code_2d_paramSetDataCode2dParamSetDataCode2dParam returns the value 2 (H_MSG_TRUE)
if the given parameters are correct.
Otherwise, an exception is raised.