ClassesClassesClassesClasses | | | | Operators

create_data_code_2d_modelcreate_data_code_2d_modelCreateDataCode2dModelcreate_data_code_2d_modelCreateDataCode2dModelCreateDataCode2dModel (Operator)

Name

create_data_code_2d_modelcreate_data_code_2d_modelCreateDataCode2dModelcreate_data_code_2d_modelCreateDataCode2dModelCreateDataCode2dModel — Create a model of a 2D data code class.

Signature

create_data_code_2d_model( : : SymbolType, GenParamNames, GenParamValues : DataCodeHandle)

Herror create_data_code_2d_model(const char* SymbolType, const char* GenParamNames, const char* GenParamValues, Hlong* DataCodeHandle)

Herror T_create_data_code_2d_model(const Htuple SymbolType, const Htuple GenParamNames, const Htuple GenParamValues, Htuple* DataCodeHandle)

Herror create_data_code_2d_model(const HTuple& SymbolType, const HTuple& GenParamNames, const HTuple& GenParamValues, Hlong* DataCodeHandle)

void HDataCode2D::CreateDataCode2dModel(const HTuple& SymbolType, const HTuple& GenParamNames, const HTuple& GenParamValues)

void CreateDataCode2dModel(const HTuple& SymbolType, const HTuple& GenParamNames, const HTuple& GenParamValues, HTuple* DataCodeHandle)

void HDataCode2D::HDataCode2D(const HString& SymbolType, const HTuple& GenParamNames, const HTuple& GenParamValues)

void HDataCode2D::HDataCode2D(const HString& SymbolType, const HString& GenParamNames, const HString& GenParamValues)

void HDataCode2D::HDataCode2D(const char* SymbolType, const char* GenParamNames, const char* GenParamValues)

void HDataCode2D::CreateDataCode2dModel(const HString& SymbolType, const HTuple& GenParamNames, const HTuple& GenParamValues)

void HDataCode2D::CreateDataCode2dModel(const HString& SymbolType, const HString& GenParamNames, const HString& GenParamValues)

void HDataCode2D::CreateDataCode2dModel(const char* SymbolType, const char* GenParamNames, const char* GenParamValues)

void HOperatorSetX.CreateDataCode2dModel(
[in] VARIANT SymbolType, [in] VARIANT GenParamNames, [in] VARIANT GenParamValues, [out] VARIANT* DataCodeHandle)

void HDataCode2DX.CreateDataCode2dModel(
[in] BSTR SymbolType, [in] VARIANT GenParamNames, [in] VARIANT GenParamValues)

static void HOperatorSet.CreateDataCode2dModel(HTuple symbolType, HTuple genParamNames, HTuple genParamValues, out HTuple dataCodeHandle)

public HDataCode2D(string symbolType, HTuple genParamNames, HTuple genParamValues)

public HDataCode2D(string symbolType, string genParamNames, string genParamValues)

void HDataCode2D.CreateDataCode2dModel(string symbolType, HTuple genParamNames, HTuple genParamValues)

void HDataCode2D.CreateDataCode2dModel(string symbolType, string genParamNames, string genParamValues)

Description

The operator create_data_code_2d_modelcreate_data_code_2d_modelCreateDataCode2dModelcreate_data_code_2d_modelCreateDataCode2dModelCreateDataCode2dModel creates a model for a certain class of 2D data codes. In DataCodeHandleDataCodeHandleDataCodeHandleDataCodeHandleDataCodeHandledataCodeHandle the operator returns a handle to the 2D data code model, which is used for all further operations on the data code, like modifying the model, reading a symbol, or accessing the results of the symbol search.

Supported symbol types

The parameter SymbolTypeSymbolTypeSymbolTypeSymbolTypeSymbolTypesymbolType is used to determine the type of data codes to process. Presently, five main types are supported: 'Data Matrix ECC 200'"Data Matrix ECC 200""Data Matrix ECC 200""Data Matrix ECC 200""Data Matrix ECC 200""Data Matrix ECC 200", 'QR Code'"QR Code""QR Code""QR Code""QR Code""QR Code", 'Micro QR Code'"Micro QR Code""Micro QR Code""Micro QR Code""Micro QR Code""Micro QR Code", 'PDF417'"PDF417""PDF417""PDF417""PDF417""PDF417", and 'Aztec Code'"Aztec Code""Aztec Code""Aztec Code""Aztec Code""Aztec Code". Additionally, three GS1 types are supported: 'GS1 DataMatrix'"GS1 DataMatrix""GS1 DataMatrix""GS1 DataMatrix""GS1 DataMatrix""GS1 DataMatrix", 'GS1 QR Code'"GS1 QR Code""GS1 QR Code""GS1 QR Code""GS1 QR Code""GS1 QR Code", and 'GS1 Aztec'"GS1 Aztec""GS1 Aztec""GS1 Aztec""GS1 Aztec""GS1 Aztec". Data matrix codes of type ECC 000-140 are not supported. For the QR Code the older Model 1 as well as the new Model 2 can be read. The PDF417 can be read in its conventional as well as in its compact form ('Compact/Truncated PDF417'). The Aztec code can be read in compact, full-range, and rune (see Annex E of ISO/IEC 24778:2008 (E)) form. The structure of the three GS1 symbologies is basically identical to their non-GS1 counterparts - ECC 200, QR Code, and Aztec Code, respectively. In the following, all parameters, settings, and rules applying to any particular data code type apply to its GS1 variant as well. The GS1 symbologies enforce merely additional rules for the format of the data carried by the codes. It has to be organized in so called GS1 application element strings according to the GS1 General Specifications.

For all symbol types, the data code reader supports the Extended Channel Interpretation (ECI) protocol. If the symbol contains an ECI code, all characters with ASCII code 92 (backslash, '\'"\""\""\""\""\") that occur in the normal data stream are, in compliance with the standard, doubled ('\\'"\\""\\""\\""\\""\\") for the output. This is necessary in order to distinguish data backslashs from the ECI sequence '\nnnnnn'"\nnnnnn""\nnnnnn""\nnnnnn""\nnnnnn""\nnnnnn".

The information whether the symbol contains ECI codes (and consequently doubled backslashs) or not is stored in the Symbology Identifier number that can be obtained for every successfully decoded symbol with the help of the operator get_data_code_2d_resultsget_data_code_2d_resultsGetDataCode2dResultsget_data_code_2d_resultsGetDataCode2dResultsGetDataCode2dResults passing the generic parameter 'symbology_ident'"symbology_ident""symbology_ident""symbology_ident""symbology_ident""symbology_ident". How the code number encodes additional information about the symbology and the data code reader, like the ECI support, is defined in the different symbology specifications. For more information see the corresponding standards and the operator get_data_code_2d_resultsget_data_code_2d_resultsGetDataCode2dResultsget_data_code_2d_resultsGetDataCode2dResultsGetDataCode2dResults.

The Symbology Indentifier code will not be preceded by the data code reader to the output data, even if the symbol contains an ECI code. If this is needed, e.g., by a subsequent processing unit, the 'symbology_ident'"symbology_ident""symbology_ident""symbology_ident""symbology_ident""symbology_ident" number (obtained by the operator get_data_code_2d_resultsget_data_code_2d_resultsGetDataCode2dResultsget_data_code_2d_resultsGetDataCode2dResultsGetDataCode2dResults with the parameter 'symbology_ident'"symbology_ident""symbology_ident""symbology_ident""symbology_ident""symbology_ident") can be added to the data stream manually together with the symbology flag and the symbol code: ']d', ']Q', ']L' or ']z' for DataMatrix codes, QR Codes, PDF417 Codes, or Aztec Codes, respectively. In particular, for GS1 symbologies the parameter 'symbology_ident'"symbology_ident""symbology_ident""symbology_ident""symbology_ident""symbology_ident" returns 2 for GS1 DataMatrix, 3 for GS1 QR Code, and 1 for GS1 Aztec Code. This corresponds to symbol codes: ']d2', ']Q3', and ']z1', respectively.

Standard default settings of the data code model

The default settings of the model were chosen to read a wide range of common symbols within a reasonable amount of time. However, for run-time reasons some restrictions apply to the symbol (see the following table). If the model was modified (as described later), it is at any time possible to reset it to these default settings by passing the generic parameter 'default_parameters'"default_parameters""default_parameters""default_parameters""default_parameters""default_parameters" together with the value 'standard_recognition'"standard_recognition""standard_recognition""standard_recognition""standard_recognition""standard_recognition" to the operator set_data_code_2d_paramset_data_code_2d_paramSetDataCode2dParamset_data_code_2d_paramSetDataCode2dParamSetDataCode2dParam.

Model parameter               'standard_recognition'    'enhanced_recognition'       'maximum_recognition'
----------------------------------------------------------------------------------------------------------
Polarity:                     dark symbols on a         in addition, light           dark symbols on a
                              light background          symbols on a dark            light background
                                                        background                   and vice versa
Minimum contrast:             30                        10                           10
Module size:
  - ECC 200, QR Code,         6 .. 20 pixels            >= 4 pixels                  >= 4 pixels
    Micro QR Code,                                      (for sharp                  (for sharp
    Aztec Code:                                         images >=2)                  images >=1)

  - PDF417:
      Width:                  3 .. 15 pixels            >= 3 pixels                  >= 3 pixels
                                                        (for sharp                   (for sharp
                                                        images >=2)                  images >=1)
      Aspect ratio:           1 .. 4                    1.0 .. 10                    1.0 .. 10
'small_modules_robustness':   'low'                     'low'                        'high'
Module shape:                 no or small gap           bigger gaps are              bigger gaps are
                              between adjacent          also possible                also possible
                              modules (< 10% of         (up to 50% of the            (up to 50% of the
                              the module size)          module size) (only           module size) (only
                                                        for ECC 200, QR Code,        ECC 200, QR Code,
                                                        Micro QR Code,               Micro QR Code,
                                                        and Aztec Code)              and Aztec Code)
ECC 200: Maximum slant:       10 degrees (0.1745)       30 degrees (0.5235)          30 degrees (0,5235)
ECC 200: Module grid:         fixed                     any (fixed or variable)      any (fixed or variable)
ECC 200:
'finder_pattern_tolerance':   'low'                     'low'                        'any'
ECC 200:
'contrast_tolerance':         'low'                     'low'                        'any'
Aztec Code:
'finder_pattern_tolerance':   'low'                     'high'                       'high'
For QR Code: Number of
position detection patterns,
that are necessary for
generating a new candidate    3                         2                            2

Modify the data code model

If it is known that the symbol does not or may not comply with all of these restrictions (e.g., the symbol is brighter than the background or the contrast is very low), or if first tests show that some of the symbols cannot be read with the default settings, it is possible to adapt single model parameters - while others are kept to the default - or the whole model can be extended in a single step by setting the generic parameter 'default_parameters'"default_parameters""default_parameters""default_parameters""default_parameters""default_parameters" to the value 'enhanced_recognition'"enhanced_recognition""enhanced_recognition""enhanced_recognition""enhanced_recognition""enhanced_recognition". This will lead to a more general model that covers a wider range of 2D data code symbols. However, the symbol search with such a general model is more extensive, hence the run-time of the operator find_data_code_2dfind_data_code_2dFindDataCode2dfind_data_code_2dFindDataCode2dFindDataCode2d may increase significantly. This is true especially in the following cases: no readable data code is detected, the symbol is printed light on dark, or the modules are very small.

By setting the generic parameter 'default_parameters'"default_parameters""default_parameters""default_parameters""default_parameters""default_parameters" to the value 'maximum_recognition'"maximum_recognition""maximum_recognition""maximum_recognition""maximum_recognition""maximum_recognition" the model is further extended in comparison to 'enhanced_recognition'"enhanced_recognition""enhanced_recognition""enhanced_recognition""enhanced_recognition""enhanced_recognition", so that data codes with very small module sizes can be decoded more robustly (see 'small_modules_robustness'"small_modules_robustness""small_modules_robustness""small_modules_robustness""small_modules_robustness""small_modules_robustness"). For the ECC 200, the mode 'maximum_recognition'"maximum_recognition""maximum_recognition""maximum_recognition""maximum_recognition""maximum_recognition" differs from the mode 'enhanced_recognition'"enhanced_recognition""enhanced_recognition""enhanced_recognition""enhanced_recognition""enhanced_recognition" in a way that even symbols with defect or partially occluded finder patterns can be read (see 'finder_pattern_tolerance'"finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance"). Using this mode may lead to a further increased run-time and memory usage of the operator find_data_code_2dfind_data_code_2dFindDataCode2dfind_data_code_2dFindDataCode2dFindDataCode2d during symbol search and decoding.

For these reasons, the model should always be specified as exactly as possible by setting all known parameters. The model parameters can be set directly during the creation of the model or later with the help of the operator set_data_code_2d_paramset_data_code_2d_paramSetDataCode2dParamset_data_code_2d_paramSetDataCode2dParamSetDataCode2dParam. Both operators provide the generic parameters GenParamNamesGenParamNamesGenParamNamesGenParamNamesGenParamNamesgenParamNames and GenParamValuesGenParamValuesGenParamValuesGenParamValuesGenParamValuesgenParamValues for this purpose. For the ECC 200, for example, the symbol size should be specified as exactly as possible if the mode 'maximum_recognition'"maximum_recognition""maximum_recognition""maximum_recognition""maximum_recognition""maximum_recognition" was chosen. A detailed description of all supported generic parameters can be found with the operator set_data_code_2d_paramset_data_code_2d_paramSetDataCode2dParamset_data_code_2d_paramSetDataCode2dParamSetDataCode2dParam.

Another way for adapting the model is to train it based on sample images. Passing the parameter 'train'"train""train""train""train""train" to the operator find_data_code_2dfind_data_code_2dFindDataCode2dfind_data_code_2dFindDataCode2dFindDataCode2d will cause the find operator to look for a symbol, determine its parameters, and modify the model accordingly. More details can be found with the description of the operator find_data_code_2dfind_data_code_2dFindDataCode2dfind_data_code_2dFindDataCode2dFindDataCode2d.

It is possible to query the model parameters with the operator get_data_code_2d_paramget_data_code_2d_paramGetDataCode2dParamget_data_code_2d_paramGetDataCode2dParamGetDataCode2dParam. The names of all supported parameters for setting or querying the model are returned by the operator query_data_code_2d_paramsquery_data_code_2d_paramsQueryDataCode2dParamsquery_data_code_2d_paramsQueryDataCode2dParamsQueryDataCode2dParams.

Store the data code model

Furthermore, the operator write_data_code_2d_modelwrite_data_code_2d_modelWriteDataCode2dModelwrite_data_code_2d_modelWriteDataCode2dModelWriteDataCode2dModel allows to write the model into a file that can be used later to create (e.g., in a different application) an identical copy of the model. Such a model copy is created directly by read_data_code_2d_modelread_data_code_2d_modelReadDataCode2dModelread_data_code_2d_modelReadDataCode2dModelReadDataCode2dModel (without calling create_data_code_2d_modelcreate_data_code_2d_modelCreateDataCode2dModelcreate_data_code_2d_modelCreateDataCode2dModelCreateDataCode2dModel).

Free the data code model

Since memory is allocated during create_data_code_2d_modelcreate_data_code_2d_modelCreateDataCode2dModelcreate_data_code_2d_modelCreateDataCode2dModelCreateDataCode2dModel and the following operations, the model should be freed explicitly by the operator clear_data_code_2d_modelclear_data_code_2d_modelClearDataCode2dModelclear_data_code_2d_modelClearDataCode2dModelClearDataCode2dModel if it is no longer used.

Parallelization

Parameters

SymbolTypeSymbolTypeSymbolTypeSymbolTypeSymbolTypesymbolType (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Type of the 2D data code.

Default value: 'Data Matrix ECC 200' "Data Matrix ECC 200" "Data Matrix ECC 200" "Data Matrix ECC 200" "Data Matrix ECC 200" "Data Matrix ECC 200"

List of values: 'Aztec Code'"Aztec Code""Aztec Code""Aztec Code""Aztec Code""Aztec Code", 'Data Matrix ECC 200'"Data Matrix ECC 200""Data Matrix ECC 200""Data Matrix ECC 200""Data Matrix ECC 200""Data Matrix ECC 200", 'GS1 Aztec Code'"GS1 Aztec Code""GS1 Aztec Code""GS1 Aztec Code""GS1 Aztec Code""GS1 Aztec Code", 'GS1 DataMatrix'"GS1 DataMatrix""GS1 DataMatrix""GS1 DataMatrix""GS1 DataMatrix""GS1 DataMatrix", 'GS1 QR Code'"GS1 QR Code""GS1 QR Code""GS1 QR Code""GS1 QR Code""GS1 QR Code", 'Micro QR Code'"Micro QR Code""Micro QR Code""Micro QR Code""Micro QR Code""Micro QR Code", 'PDF417'"PDF417""PDF417""PDF417""PDF417""PDF417", 'QR Code'"QR Code""QR Code""QR Code""QR Code""QR Code"

GenParamNamesGenParamNamesGenParamNamesGenParamNamesGenParamNamesgenParamNames (input_control)  attribute.name(-array) HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Names of the generic parameters that can be adjusted for the 2D data code model.

Default value: []

List of values: 'additional_levels'"additional_levels""additional_levels""additional_levels""additional_levels""additional_levels", 'contrast_min'"contrast_min""contrast_min""contrast_min""contrast_min""contrast_min", 'contrast_tolerance'"contrast_tolerance""contrast_tolerance""contrast_tolerance""contrast_tolerance""contrast_tolerance", 'default_parameters'"default_parameters""default_parameters""default_parameters""default_parameters""default_parameters", 'finder_pattern_tolerance'"finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance", 'mirrored'"mirrored""mirrored""mirrored""mirrored""mirrored", 'model_type'"model_type""model_type""model_type""model_type""model_type", 'module_aspect'"module_aspect""module_aspect""module_aspect""module_aspect""module_aspect", 'module_aspect_max'"module_aspect_max""module_aspect_max""module_aspect_max""module_aspect_max""module_aspect_max", 'module_aspect_min'"module_aspect_min""module_aspect_min""module_aspect_min""module_aspect_min""module_aspect_min", 'module_gap'"module_gap""module_gap""module_gap""module_gap""module_gap", 'module_gap_col'"module_gap_col""module_gap_col""module_gap_col""module_gap_col""module_gap_col", '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_col_min'"module_gap_col_min""module_gap_col_min""module_gap_col_min""module_gap_col_min""module_gap_col_min", 'module_gap_max'"module_gap_max""module_gap_max""module_gap_max""module_gap_max""module_gap_max", 'module_gap_min'"module_gap_min""module_gap_min""module_gap_min""module_gap_min""module_gap_min", 'module_gap_row'"module_gap_row""module_gap_row""module_gap_row""module_gap_row""module_gap_row", 'module_gap_row_max'"module_gap_row_max""module_gap_row_max""module_gap_row_max""module_gap_row_max""module_gap_row_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", 'module_grid'"module_grid""module_grid""module_grid""module_grid""module_grid", 'module_size'"module_size""module_size""module_size""module_size""module_size", 'module_size_max'"module_size_max""module_size_max""module_size_max""module_size_max""module_size_max", 'module_size_min'"module_size_min""module_size_min""module_size_min""module_size_min""module_size_min", 'module_width'"module_width""module_width""module_width""module_width""module_width", 'module_width_max'"module_width_max""module_width_max""module_width_max""module_width_max""module_width_max", 'module_width_min'"module_width_min""module_width_min""module_width_min""module_width_min""module_width_min", 'persistence'"persistence""persistence""persistence""persistence""persistence", 'polarity'"polarity""polarity""polarity""polarity""polarity", 'position_pattern_min'"position_pattern_min""position_pattern_min""position_pattern_min""position_pattern_min""position_pattern_min", 'slant_max'"slant_max""slant_max""slant_max""slant_max""slant_max", 'small_modules_robustness'"small_modules_robustness""small_modules_robustness""small_modules_robustness""small_modules_robustness""small_modules_robustness", 'strict_model'"strict_model""strict_model""strict_model""strict_model""strict_model", 'strict_quiet_zone'"strict_quiet_zone""strict_quiet_zone""strict_quiet_zone""strict_quiet_zone""strict_quiet_zone", 'symbol_cols'"symbol_cols""symbol_cols""symbol_cols""symbol_cols""symbol_cols", 'symbol_cols_max'"symbol_cols_max""symbol_cols_max""symbol_cols_max""symbol_cols_max""symbol_cols_max", 'symbol_cols_min'"symbol_cols_min""symbol_cols_min""symbol_cols_min""symbol_cols_min""symbol_cols_min", 'symbol_rows'"symbol_rows""symbol_rows""symbol_rows""symbol_rows""symbol_rows", 'symbol_rows_max'"symbol_rows_max""symbol_rows_max""symbol_rows_max""symbol_rows_max""symbol_rows_max", 'symbol_rows_min'"symbol_rows_min""symbol_rows_min""symbol_rows_min""symbol_rows_min""symbol_rows_min", 'symbol_shape'"symbol_shape""symbol_shape""symbol_shape""symbol_shape""symbol_shape", 'symbol_size'"symbol_size""symbol_size""symbol_size""symbol_size""symbol_size", 'symbol_size_max'"symbol_size_max""symbol_size_max""symbol_size_max""symbol_size_max""symbol_size_max", 'symbol_size_min'"symbol_size_min""symbol_size_min""symbol_size_min""symbol_size_min""symbol_size_min", 'timeout'"timeout""timeout""timeout""timeout""timeout", 'version'"version""version""version""version""version", 'version_max'"version_max""version_max""version_max""version_max""version_max", 'version_min'"version_min""version_min""version_min""version_min""version_min"

GenParamValuesGenParamValuesGenParamValuesGenParamValuesGenParamValuesgenParamValues (input_control)  attribute.value(-array) HTupleHTupleHTupleVARIANTHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double) (BSTR / Hlong / double) (char* / Hlong / double)

Values of the generic parameters that can be adjusted for the 2D data code model.

Default value: []

Suggested 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", 'yes'"yes""yes""yes""yes""yes", 'no'"no""no""no""no""no", 'any'"any""any""any""any""any", 'dark_on_light'"dark_on_light""dark_on_light""dark_on_light""dark_on_light""dark_on_light", 'light_on_dark'"light_on_dark""light_on_dark""light_on_dark""light_on_dark""light_on_dark", 'square'"square""square""square""square""square", 'rectangle'"rectangle""rectangle""rectangle""rectangle""rectangle", 'small'"small""small""small""small""small", 'big'"big""big""big""big""big", 'fixed'"fixed""fixed""fixed""fixed""fixed", 'variable'"variable""variable""variable""variable""variable", 'low'"low""low""low""low""low", 'high'"high""high""high""high""high", 0, 1, 2, 3, 4, 5, 6, 7, 8, 10, 30, 50, 70, 90, 12, 14, 16, 18, 20, 22, 24, 26, 32, 36, 40, 44, 48, 52, 64, 72, 80, 88, 96, 104, 120, 132, 144

DataCodeHandleDataCodeHandleDataCodeHandleDataCodeHandleDataCodeHandledataCodeHandle (output_control)  datacode_2d HDataCode2D, HTupleHTupleHDataCode2D, HTupleHDataCode2DX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Handle for using and accessing the 2D data code model.

Example (HDevelop)

* Two simple examples that show the use of create_data_code_2d_model
* to detect a Data matrix ECC 200 code and a QR Code.

* (1) Create a model for reading simple QR Codes
*     (only dark symbols on a light background will be read)
create_data_code_2d_model ('QR Code', [], [], DataCodeHandle)
* Read an image
read_image (Image, 'datacode/qrcode/qr_workpiece_01')
* Read the symbol in the image
find_data_code_2d (Image, SymbolXLDs, DataCodeHandle, [], [], \
                   ResultHandles, DecodedDataStrings)
* Clear the model
clear_data_code_2d_model (DataCodeHandle)

* (2) Create a model for reading a wide range of Data matrix ECC 200 codes
*     (this model will also read light symbols on dark background)
create_data_code_2d_model ('Data Matrix ECC 200', 'default_parameters', \
                           'enhanced_recognition', DataCodeHandle)
* 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)

Result

The operator create_data_code_2d_modelcreate_data_code_2d_modelCreateDataCode2dModelcreate_data_code_2d_modelCreateDataCode2dModelCreateDataCode2dModel returns the value 2 (H_MSG_TRUE) if the given parameters are correct. Otherwise, an exception is raised.

Possible Successors

set_data_code_2d_paramset_data_code_2d_paramSetDataCode2dParamset_data_code_2d_paramSetDataCode2dParamSetDataCode2dParam, find_data_code_2dfind_data_code_2dFindDataCode2dfind_data_code_2dFindDataCode2dFindDataCode2d

Alternatives

read_data_code_2d_modelread_data_code_2d_modelReadDataCode2dModelread_data_code_2d_modelReadDataCode2dModelReadDataCode2dModel

See also

clear_data_code_2d_modelclear_data_code_2d_modelClearDataCode2dModelclear_data_code_2d_modelClearDataCode2dModelClearDataCode2dModel, clear_all_data_code_2d_modelsclear_all_data_code_2d_modelsClearAllDataCode2dModelsclear_all_data_code_2d_modelsClearAllDataCode2dModelsClearAllDataCode2dModels

References

International Standard ISO/IEC 16022: “Information technology - Automatic identification and data capture techniques - Data Matrix bar code symbology specification”; Reference number ISO/IEC 16022:2006 (E); ISO/IEC 2006.

International Standard ISO/IEC 15438: “Information technology - Automatic identification and data capture techniques - PDF417 bar code symbology specification”; Reference number ISO/IEC 15438:2006 (E); ISO/IEC 2006.

International Standard ISO/IEC 18004: “Information technology - Automatic identification and data capture techniques - QR Code 2005 bar code symbology specification”; Reference number ISO/IEC 18004:2006 (E); ISO/IEC 2006.

International Standard ISO/IEC 24778: “Information technology - Automatic identification and data capture techniques - Aztec Code bar code symbology specification”; Reference number ISO/IEC 24778:2008 (E); ISO/IEC 2008.

GS1 General Specifications; Version 12; Issue 1, Jan-2012; GS1.

Module

Data Code


ClassesClassesClassesClasses | | | | Operators