create_data_code_2d_modelT_create_data_code_2d_modelCreateDataCode2dModelCreateDataCode2dModelcreate_data_code_2d_model (Operator)
Name
create_data_code_2d_modelT_create_data_code_2d_modelCreateDataCode2dModelCreateDataCode2dModelcreate_data_code_2d_model — Anlegen eines generischen Modells für eine Klasse von 2D-Datacodes.
Signatur
void CreateDataCode2dModel(const HTuple& SymbolType, const HTuple& GenParamName, const HTuple& GenParamValue, HTuple* DataCodeHandle)
void HDataCode2D::HDataCode2D(const HString& SymbolType, const HTuple& GenParamName, const HTuple& GenParamValue)
void HDataCode2D::HDataCode2D(const HString& SymbolType, const HString& GenParamName, const HString& GenParamValue)
void HDataCode2D::HDataCode2D(const char* SymbolType, const char* GenParamName, const char* GenParamValue)
void HDataCode2D::HDataCode2D(const wchar_t* SymbolType, const wchar_t* GenParamName, const wchar_t* GenParamValue)
(Nur Windows)
void HDataCode2D::CreateDataCode2dModel(const HString& SymbolType, const HTuple& GenParamName, const HTuple& GenParamValue)
void HDataCode2D::CreateDataCode2dModel(const HString& SymbolType, const HString& GenParamName, const HString& GenParamValue)
void HDataCode2D::CreateDataCode2dModel(const char* SymbolType, const char* GenParamName, const char* GenParamValue)
void HDataCode2D::CreateDataCode2dModel(const wchar_t* SymbolType, const wchar_t* GenParamName, const wchar_t* GenParamValue)
(Nur Windows)
static void HOperatorSet.CreateDataCode2dModel(HTuple symbolType, HTuple genParamName, HTuple genParamValue, out HTuple dataCodeHandle)
public HDataCode2D(string symbolType, HTuple genParamName, HTuple genParamValue)
public HDataCode2D(string symbolType, string genParamName, string genParamValue)
void HDataCode2D.CreateDataCode2dModel(string symbolType, HTuple genParamName, HTuple genParamValue)
void HDataCode2D.CreateDataCode2dModel(string symbolType, string genParamName, string genParamValue)
Beschreibung
Mit Hilfe von create_data_code_2d_modelcreate_data_code_2d_modelCreateDataCode2dModelCreateDataCode2dModelCreateDataCode2dModelcreate_data_code_2d_model wird ein generisches
Modell für eine Klasse von 2D-Datacodes angelegt.
Als Ergebnis liefert der Operator in DataCodeHandleDataCodeHandleDataCodeHandleDataCodeHandledataCodeHandledata_code_handle ein
Handle zurück, das für alle weiteren Datacode-Operationen
verwendet wird, beispielsweise um das Modell zu modifizieren, um im
Bild nach Symbolen zu suchen und diese zu lesen, oder um später auf
die Ergebnisse der Symbolsuche zuzugreifen.
Das Konzept des 2D-Datacode-Lesers ist bei der Einleitung
zu Kapitel Identifizierung / Datacode beschrieben.
Unterstützte Symboltypen
Der Parameter SymbolTypeSymbolTypeSymbolTypeSymbolTypesymbolTypesymbol_type legt den Typ der zu lesenden
2D-Datacode-Symbole fest.
Derzeit werden sechs 2D-Datacode-Typen unterstützt:
'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", 'Aztec Code'"Aztec Code""Aztec Code""Aztec Code""Aztec Code""Aztec Code" und 'DotCode'"DotCode""DotCode""DotCode""DotCode""DotCode".
Zusätzlich werden vier weitere GS1 Typen unterstützt:
'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", 'GS1 Aztec Code'"GS1 Aztec Code""GS1 Aztec Code""GS1 Aztec Code""GS1 Aztec Code""GS1 Aztec Code"
und 'GS1 DotCode'"GS1 DotCode""GS1 DotCode""GS1 DotCode""GS1 DotCode""GS1 DotCode". Die Datamatrix-Codes ECC 000-140 werden nicht
unterstützt, der QR-Code hingegen kann sowohl in der älteren Model-1-Version
als auch in der neuen Model-2-Version gelesen werden. Der PDF417 kann
sowohl in seiner herkömmlichen als auch in seiner kompakten Form
('Compact/Truncated PDF417') gelesen werden. Der Aztec Code kann im
'compact', 'full_range' und 'rune' (siehe ISO/IEC 24778:2008 (E) Annex E )
Format gelesen werden.
Die Symbolstruktur der vier GS1 Symbologien ist identisch mit
der Struktur ihrer nicht-GS1-Varianten - Data Matrix ECC 200, QR Code, Aztec Code
bzw. DotCode. Deswegen gelten alle typspezifischen Parameter, Einstellungen und
Vorgaben, die Data Matrix ECC 200, QR Code, Aztec Code oder DotCode betreffen,
auch für ihre entsprechende GS1-Variante. Die GS1 Symbologien haben lediglich
zusätzliche Vorgabe bezüglich des Formats der im jeweiligen Symbol
kodierten Daten. Die Daten müssen in sogenannten "GS1 Application
Element Strings" organisiert werden, welche in den allgemeinen GS1
Spezifikationen definiert sind.
Alle Datacode-Leser unterstützen das Extended Channel Interpretation
(ECI) Protokoll. Wenn das Symbol einen ECI-Code enthält, werden
dem Standard entsprechend alle Backslashs
('\'"\""\""\""\""\", ASCII-Code 92), die im normalen
Datenstrom vorkommen, in den Ausgabedaten verdoppelt
('\\'"\\""\\""\\""\\""\\"), damit diese von der
ECI-Sequenz '\nnnnnn'"\nnnnnn""\nnnnnn""\nnnnnn""\nnnnnn""\nnnnnn"
unterschieden werden können.
Ob ein Symbol einen ECI-Code enthält und damit, ob Backslashs verdoppelt
wurden oder nicht, kann der Symbology Identifier Kennung entnommen werden.
Diese kann mit dem Operator get_data_code_2d_resultsget_data_code_2d_resultsGetDataCode2dResultsGetDataCode2dResultsGetDataCode2dResultsget_data_code_2d_results, mit dem
Parameter 'symbology_ident'"symbology_ident""symbology_ident""symbology_ident""symbology_ident""symbology_ident" für jedes erfolgreich gelesene Symbol
abgefragt werden. Wie in der so zurückgelieferten Zahl kodiert ist, ob das
Symbol ECI-Codes enthält oder nicht, kann den jeweiligen Symbol-Standards
oder der Operatorbeschreibung get_data_code_2d_resultsget_data_code_2d_resultsGetDataCode2dResultsGetDataCode2dResultsGetDataCode2dResultsget_data_code_2d_results entnommen
werden.
Der Datacode-Leser stellt den Ausgabedaten in keinem Fall, also auch dann
nicht, wenn das Symbol ECI-Codes enthält, automatisch die Symbology Identifier
Kennung voran. Wenn ein solcher Datenstrom für die weitere Verarbeitung
notwendig sein sollte, muss die Sequenz bestehend aus Identifierflag und
Symbolkennung (']d' für Data Matrix ECC 200 Codes, ']Q' für QR-Codes, ']L' für
PDF417 Codes, ']z' für Aztec Codes bzw. ']J' für DotCodes) sowie der als
'symbology_ident'"symbology_ident""symbology_ident""symbology_ident""symbology_ident""symbology_ident" zurückgelieferten Optionsnummer in der Anwendung
vor dem Datenstrom manuell ausgegeben werden. Dementsprechend liefert
der Parameter 'symbology_ident'"symbology_ident""symbology_ident""symbology_ident""symbology_ident""symbology_ident" für die GS1 Symbologien die
folgenden Werte zurück: 2 für GS1 DataMatrix, 3 für GS1 QR Code und 1
für GS1 Aztec und GS1 DotCode, welche den Identifiern ']d2', ']Q3', bzw. ']z1'
und ']J1' entsprechen.
Standardeinstellung des Datacode-Modells
In der Grundeinstellung sind die Modellparameter so gewählt, dass
eine relativ große Gruppe von Symbolen in vertretbarer Zeit erkannt
wird, wobei in dieser Einstellung aus Laufzeitgründen nur Symbole
gelesen werden können, die gewissen Einschränkungen unterliegen
(vgl. dazu die folgende Tabelle).
Wurde das Modell wie weiter unten beschrieben modifiziert, kann es
durch Setzen des generischen Parameters
'default_parameters'"default_parameters""default_parameters""default_parameters""default_parameters""default_parameters" auf 'standard_recognition'"standard_recognition""standard_recognition""standard_recognition""standard_recognition""standard_recognition"
(Operator set_data_code_2d_paramset_data_code_2d_paramSetDataCode2dParamSetDataCode2dParamSetDataCode2dParamset_data_code_2d_param) jederzeit wieder in diese
Grundeinstellung zurückgesetzt werden.
Für manche Modellparameter ist der Standardwert abhängig vom gewählten
Modus ('standard_recognition'"standard_recognition""standard_recognition""standard_recognition""standard_recognition""standard_recognition", 'enhanced_recognition'"enhanced_recognition""enhanced_recognition""enhanced_recognition""enhanced_recognition""enhanced_recognition" oder
'maximum_recognition'"maximum_recognition""maximum_recognition""maximum_recognition""maximum_recognition""maximum_recognition").
Diese Parameter sind in der nachfolgenden Tabelle gelistet.
Detailliertere Parameterbeschreibungen, sowie die restlichen verfügbaren
Modellparameter sind in der Operatorreferenz von
set_data_code_2d_paramset_data_code_2d_paramSetDataCode2dParamSetDataCode2dParamSetDataCode2dParamset_data_code_2d_param zu finden.
|
Modellparameter |
'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" |
|
'polarity'"polarity""polarity""polarity""polarity""polarity" |
'dark_on_light' (Dunkle Symbole auf hellem Hintergrund) |
'any' (Dunkle Symbole auf hellem Hintergrund und andersherum) |
'any' (Dunkle Symbole auf hellem Hintergrund und andersherum) |
|
'contrast_min'"contrast_min""contrast_min""contrast_min""contrast_min""contrast_min" (Aztec Code, Micro QR Code, QR Code, PDF417)
|
30 |
10 |
10 |
|
'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" (PDF417)
|
1 ... 20 |
1 ... 30 |
1 ... 30 |
|
'symbol_rows_min'"symbol_rows_min""symbol_rows_min""symbol_rows_min""symbol_rows_min""symbol_rows_min", 'symbol_rows_max'"symbol_rows_max""symbol_rows_max""symbol_rows_max""symbol_rows_max""symbol_rows_max" (PDF417)
|
5 ... 45 |
3 ... 90 |
3 ... 90 |
|
'module_size_min'"module_size_min""module_size_min""module_size_min""module_size_min""module_size_min", 'module_size_max'"module_size_max""module_size_max""module_size_max""module_size_max""module_size_max" (Aztec Code, Data Matrix ECC 200, Micro QR Code, QR Code) |
6 ... 20 Pixel |
4 (2 bei guter Schärfe) ... 100 Pixel |
4 (1 bei guter Schärfe) ... 100 Pixel |
|
'module_size_min'"module_size_min""module_size_min""module_size_min""module_size_min""module_size_min", 'module_size_max'"module_size_max""module_size_max""module_size_max""module_size_max""module_size_max" (DotCode) |
4 ... 100 Pixel |
2 ... 100 Pixel |
2 ... 100 Pixel |
|
'module_width_min'"module_width_min""module_width_min""module_width_min""module_width_min""module_width_min", 'module_width_max'"module_width_max""module_width_max""module_width_max""module_width_max""module_width_max" (PDF417) |
3 ... 15 Pixel |
3 (2 bei guter Schärfe) ... 100 Pixel |
3 (1 bei guter Schärfe) ... 100 Pixel |
|
'module_aspect_min'"module_aspect_min""module_aspect_min""module_aspect_min""module_aspect_min""module_aspect_min", 'module_aspect_max'"module_aspect_max""module_aspect_max""module_aspect_max""module_aspect_max""module_aspect_max" (PDF417) |
1 ... 4 |
1 ... 10 |
1 ... 10 |
|
'small_modules_robustness'"small_modules_robustness""small_modules_robustness""small_modules_robustness""small_modules_robustness""small_modules_robustness" (Alle Codetypen außer DotCode) |
'low' (niedrig) |
'low' (niedrig) |
'high' (hoch) |
|
'module_gap_max'"module_gap_max""module_gap_max""module_gap_max""module_gap_max""module_gap_max" (Aztec Code, Micro QR Code, QR Code) |
'small' (< 10% der Modulgröße) |
'big' (< 50% der Modulgröße) |
'big' (< 50% der Modulgröße) |
|
'module_gap_max'"module_gap_max""module_gap_max""module_gap_max""module_gap_max""module_gap_max" (Data Matrix ECC 200) |
'no' |
'small' (< 10% der Modulgröße) |
'big' (< 50% der Modulgröße) |
|
'module_gap_max'"module_gap_max""module_gap_max""module_gap_max""module_gap_max""module_gap_max" (DotCode) |
'no' |
'small' (< 10% der Modulgröße) |
'small' (< 10% der Modulgröße) |
|
'slant_max'"slant_max""slant_max""slant_max""slant_max""slant_max" (Data Matrix ECC 200) |
0.1745 (10°) |
0.5235 (30°) |
0.5235 (30°) |
|
'module_grid'"module_grid""module_grid""module_grid""module_grid""module_grid" (Data Matrix ECC 200) |
'fixed' (fest) |
'any' (fest oder variabel) |
'any' (fest oder variabel) |
|
'finder_pattern_tolerance'"finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance" (Data Matrix ECC 200) |
'low' (niedrig) |
'low' (niedrig) |
'any' (niedrig oder hoch) |
|
'contrast_tolerance'"contrast_tolerance""contrast_tolerance""contrast_tolerance""contrast_tolerance""contrast_tolerance" (Data Matrix ECC 200) |
'low' (niedrig) |
'low' (niedrig) |
'any' (niedrig oder hoch) |
|
'candidate_selection'"candidate_selection""candidate_selection""candidate_selection""candidate_selection""candidate_selection" (Data Matrix ECC 200) |
'default' (Standard) |
'extensive' (umfangreich) |
'extensive' (umfangreich) |
|
'candidate_selection'"candidate_selection""candidate_selection""candidate_selection""candidate_selection""candidate_selection" (DotCode) |
'default' (Standard) |
'extensive' (umfangreich) |
'all' (alle) |
|
'finder_pattern_tolerance'"finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance" (Aztec Code) |
'low' (niedrig) |
'high' (hoch) |
'high' (hoch) |
|
'position_pattern_min'"position_pattern_min""position_pattern_min""position_pattern_min""position_pattern_min""position_pattern_min" (QR Code) |
3 |
2 |
2
|
Ändern der Modelleinstellung
Ist bekannt, dass einzelne Parameter der zu lesenden Symbole diesen
Vorgaben (möglicherweise) nicht entsprechen (erscheinen im Bild
beispielsweise die Symbole hell vor dunklem Hintergrund oder ist mit
einem sehr geringen Kontrast zu rechnen), oder ergeben erste
Tests, dass einzelne Symbole in der Grundeinstellung nicht lesbar
sind, können entweder die entsprechenden Werte - wenn sie
bekannt sind - einzeln angepasst werden, wobei alle anderen
Einstellungen unverändert bleiben, oder aber das gesamte Modell
wird durch Setzen des generischen Parameters
'default_parameters'"default_parameters""default_parameters""default_parameters""default_parameters""default_parameters" auf den Wert
'enhanced_recognition'"enhanced_recognition""enhanced_recognition""enhanced_recognition""enhanced_recognition""enhanced_recognition" in einem Schritt stark erweitert, so
dass eine deutlich größere Gruppe von 2D-Datacode-Symbolen erkannt
werden kann.
Da die Suche mit einem derart allgemeinen Modell allerdings deutlich
aufwendiger ist, kann sich die Rechenzeit des Operators
find_data_code_2dfind_data_code_2dFindDataCode2dFindDataCode2dFindDataCode2dfind_data_code_2d bei der Symbolsuche z.T. erheblich
erhöhen.
Dies ist insbesondere dann zu erwarten, wenn in einem Bild kein
lesbarer Datacode gefunden werden kann, wenn das Symbol heller als
der Hintergrund ist oder wenn die Module sehr klein sind.
Durch Setzen des generischen Parameters
'default_parameters'"default_parameters""default_parameters""default_parameters""default_parameters""default_parameters" auf den Wert
'maximum_recognition'"maximum_recognition""maximum_recognition""maximum_recognition""maximum_recognition""maximum_recognition" wird das Modell im Vergleich zu
'enhanced_recognition'"enhanced_recognition""enhanced_recognition""enhanced_recognition""enhanced_recognition""enhanced_recognition" nochmals erweitert, so dass
Datacodes mit sehr kleiner Modulgröße robuster gelesen werden
können (siehe 'small_modules_robustness'"small_modules_robustness""small_modules_robustness""small_modules_robustness""small_modules_robustness""small_modules_robustness").
Für den Fall des Data Matrix ECC 200 unterscheidet sich der Modus
'maximum_recognition'"maximum_recognition""maximum_recognition""maximum_recognition""maximum_recognition""maximum_recognition" vom Modus
'enhanced_recognition'"enhanced_recognition""enhanced_recognition""enhanced_recognition""enhanced_recognition""enhanced_recognition" insofern, dass auch Symbole mit
einem gestörten oder teilweise fehlenden Finder-Pattern gefunden werden
können (siehe 'finder_pattern_tolerance'"finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance""finder_pattern_tolerance").
Die Verwendung dieses Modus kann zu einer erhöhten
Rechenzeit und einem erhöhten Speicherbedarf des Operators
find_data_code_2dfind_data_code_2dFindDataCode2dFindDataCode2dFindDataCode2dfind_data_code_2d bei der Symbolsuche und der Dekodierung
führen.
Aus diesen Gründen sollte das Modell immer durch Setzen der
bekannten Symbolparameter soweit wie möglich eingeschränkt werden.
Dies kann hier direkt beim Erzeugen des Modells oder aber später
mit dem Operator set_data_code_2d_paramset_data_code_2d_paramSetDataCode2dParamSetDataCode2dParamSetDataCode2dParamset_data_code_2d_param erfolgen, wofür bei
beiden Operatoren die generischen Parameter GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name
und GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value zur Verfügung stehen. So sollte z.B. im
Falle des Data Matrix ECC 200 bei der Verwendung des Modus
'maximum_recognition'"maximum_recognition""maximum_recognition""maximum_recognition""maximum_recognition""maximum_recognition" die Symbolgröße soweit wie
möglich eingeschränkt werden. Eine detaillierte Beschreibung
der Parameter findet sich beim Operator
set_data_code_2d_paramset_data_code_2d_paramSetDataCode2dParamSetDataCode2dParamSetDataCode2dParamset_data_code_2d_param.
Schließlich steht als eine weitere Möglichkeit, das Modell an
eine bestimmte Symbolform anzupassen, auch ein Trainingsmodus zur
Verfügung.
Der Operator find_data_code_2dfind_data_code_2dFindDataCode2dFindDataCode2dFindDataCode2dfind_data_code_2d erlaubt es, mit der
Parametereinstellung 'train'"train""train""train""train""train" die Symbolparameter aus
einem oder mehreren Beispielbildern zu trainieren.
In jedem Fall können die aktuell eingestellten Modellparameter mit
get_data_code_2d_paramget_data_code_2d_paramGetDataCode2dParamGetDataCode2dParamGetDataCode2dParamget_data_code_2d_param ausgelesen werden.
Die Namen der Parameter, die für das konkrete Modell gesetzt
bzw. abgefragt werden können, liefert
query_data_code_2d_paramsquery_data_code_2d_paramsQueryDataCode2dParamsQueryDataCode2dParamsQueryDataCode2dParamsquery_data_code_2d_params.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Dieser Operator liefert ein Handle zurück. Es ist zu beachten, dass der Zustand einer Instanz dieses Handletyps durch bestimmte Operatoren geändert werden kann, obwohl das Handle als Eingabeparameter in diesen Operatoren verwendet wird.
Parameter
SymbolTypeSymbolTypeSymbolTypeSymbolTypesymbolTypesymbol_type (input_control) string → HTuplestrHTupleHtuple (string) (string) (HString) (char*)
Typ des 2D-Datacodes.
Defaultwert:
'Data Matrix ECC 200'
"Data Matrix ECC 200"
"Data Matrix ECC 200"
"Data Matrix ECC 200"
"Data Matrix ECC 200"
"Data Matrix ECC 200"
Werteliste: '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", 'DotCode'"DotCode""DotCode""DotCode""DotCode""DotCode", '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 DotCode'"GS1 DotCode""GS1 DotCode""GS1 DotCode""GS1 DotCode""GS1 DotCode", '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"
GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name (input_control) attribute.name(-array) → HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)
Namen der generischen Parameter, die für das
2D-Datacode-Modell eingestellt werden sollen.
Defaultwert: []
Werteliste: 'additional_levels'"additional_levels""additional_levels""additional_levels""additional_levels""additional_levels", 'candidate_selection'"candidate_selection""candidate_selection""candidate_selection""candidate_selection""candidate_selection", '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_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_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"
GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value (input_control) attribute.value(-array) → HTupleMaybeSequence[Union[int, str, float]]HTupleHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double)
Werte der generischen Parameter, die für das
2D-Datacode-Modell eingestellt werden sollen.
Defaultwert: []
Wertevorschläge: '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", 'default'"default""default""default""default""default", 'extensive'"extensive""extensive""extensive""extensive""extensive", 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
DataCodeHandleDataCodeHandleDataCodeHandleDataCodeHandledataCodeHandledata_code_handle (output_control) datacode_2d → HDataCode2D, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
Handle für den Zugriff auf das 2D-Datacode-Modell
Beispiel (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)
Ergebnis
create_data_code_2d_modelcreate_data_code_2d_modelCreateDataCode2dModelCreateDataCode2dModelCreateDataCode2dModelcreate_data_code_2d_model liefert den Wert TRUE, falls die
übergebenen Parameter korrekt sind und das Modell erzeugt werden
kann.
Ansonsten wird eine Fehlerbehandlung durchgeführt.
Nachfolger
set_data_code_2d_paramset_data_code_2d_paramSetDataCode2dParamSetDataCode2dParamSetDataCode2dParamset_data_code_2d_param,
find_data_code_2dfind_data_code_2dFindDataCode2dFindDataCode2dFindDataCode2dfind_data_code_2d
Alternativen
read_data_code_2d_modelread_data_code_2d_modelReadDataCode2dModelReadDataCode2dModelReadDataCode2dModelread_data_code_2d_model
Siehe auch
clear_data_code_2d_modelclear_data_code_2d_modelClearDataCode2dModelClearDataCode2dModelClearDataCode2dModelclear_data_code_2d_model
Literatur
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.
Modul
Data Code