set_data_code_2d_param
— Setzen ausgewählter Parameter des 2D-Datacode-Modells.
set_data_code_2d_param( : : DataCodeHandle, GenParamName, GenParamValue : )
Der Operator set_data_code_2d_param
erlaubt es, zahlreiche
Parameter, durch die ein 2D-Datacode beschrieben oder das Verhalten
des Modells bei der Symbolsuche gesteuert wird, zu verändern, um
so das 2D-Datacode-Modell an die eigenen Erfordernisse anzupassen.
Alle Parameter können auch direkt beim Anlegen des Modells
mit create_data_code_2d_model
übergeben werden.
Die aktuelle Konfiguration kann mit Hilfe von
get_data_code_2d_param
ausgelesen werden.
Eine Liste mit den Namen aller Parameter, die für den gegebenen
2D-Datacode-Typ gesetzt werden können, liefert der Operator
query_data_code_2d_params
.
Das Konzept des 2D-Datacode-Lesers ist bei der Einleitung zu Kapitel Identifizierung / Datacode beschrieben.
Es ist zu beachten, dass die Symbolstruktur von GS1 DataMatrix, GS1 QR Code
und GS1 Aztec Code der der Struktur von Data Matrix ECC 200, QR Code, bzw.
Aztec Code identisch ist. Deswegen gelten alle typspezifischen Parameter,
Einstellungen und Vorgaben, die Data Matrix ECC 200, QR Code oder Aztec
betreffen, auch für ihre entsprechende GS1-Variante. Im Folgenden wird das
ausführliche Auflisten typspezifischer Parameter einzelner GS1-Typen
ausgelassen, um die Lesbarkeit der Dokumentation zu erleichtern.
Stattdessen können die relevante Parameter eines GS1-Datacodetyps entweder
von den Parametern von dessen nicht-GS1-Variante hergeleitet werden oder
explizit durch query_data_code_2d_params
mit dem Parameter
'set_model_params' abgefragt werden.
Es folgt eine Übersicht über die verschiedenen generischen Parameter mit den jeweiligen Wertebereichen und Defaultwerten im Standardmodus ('standard_recognition' ). Falls die Defaultwerte im erweiterten Modus ('enhanced_recognition' ) von denen im Standardmodus abweichen, sind diese zusätzlich angegeben. Das gleiche gilt, falls die Defaultwerte im maximalen Modus 'maximum_recognition' von denen im erweiterten Modus abweichen:
Grundeinstellung:
Alle 2D-Datacode-Modelle:
Setzt alle Modell-Parameter in einen der drei
Grundzustände standard, erweitert
oder maximal zurück (vgl. die folgende Übersicht
sowie create_data_code_2d_model
). Dabei wird neben
den Parameterwerten auch der Trainingsstatus aller
Parameter zurückgesetzt (vgl.
find_data_code_2d
).
Werteliste: 'standard_recognition' , 'enhanced_recognition' , 'maximum_recognition'
Default: 'standard_recognition'
Achtung: Soll dieser Parameter zusammen mit anderen Parametern gesetzt werden, muss 'default_parameters' immer das erste Element in der übergebenen Liste sein.
Setzt für den übergebenen Parameter den Trainingsstatus auf
trainiert. Alle gesetzten Parameter werden beim Training nicht mehr
überschrieben. Falls nötig wird nur der Suchraum durch das Training
erweitert.
Für die möglichen Parameter, die für die einzelnen
Codetypen trainiert werden können siehe
find_data_code_2d
.
Größe und Form des Symbols:
Data Matrix ECC 200 (inklusive Finder-Pattern):
Achtung: Beim Ändern der Größe oder der Form über
den Operator set_data_code_2d_param
, werden die Parameter
der Reihe nach ausgewertet, sowie jeweils die Gültigkeit
der aktuellen Einstellungen überprüft und ggf. angepasst. Daher
kann sich die Reihenfolge der durchgeführten Änderungen auf die
endgültigen Einstellungen auswirken.
Mindestanzahl der Spalten des Symbols in Modulen.
Wertebereich: [10, 12, 14, .. 144]
Achtung: Das Setzen von 'symbol_cols_min' führt dazu, dass 'symbol_shape' auf 'any' gesetzt wird. Wenn für die Größe des Symbols nur eine Symbol Form möglich ist, wird 'symbol_shape' entsprechend auf 'rectangle' oder 'square' gesetzt.
Default: 10
Höchstanzahl der Spalten des Symbols in Modulen.
Wertebereich: [10, 12, 14, .. 144]
Achtung: Das Setzen von 'symbol_cols_max' führt dazu, dass 'symbol_shape' auf 'any' gesetzt wird. Wenn für die Größe des Symbols nur eine Symbol Form möglich ist, wird 'symbol_shape' entsprechend auf 'rectangle' oder 'square' gesetzt.
Default: 144
Mindestanzahl der Zeilen des Symbols in Modulen.
Wertebereich: [8, 10, 12, .. 144]
Achtung: Das Setzen von 'symbol_rows_min' führt dazu, dass 'symbol_shape' auf 'any' gesetzt wird. Wenn für die Größe des Symbols nur eine Symbol Form möglich ist, wird 'symbol_shape' entsprechend auf 'rectangle' oder 'square' gesetzt.
Default: 8
Höchstanzahl der Zeilen des Symbols in Modulen.
Wertebereich: [8, 10, 12, .. 144]
Achtung: Das Setzen von 'symbol_rows_max' führt dazu, dass 'symbol_shape' auf 'any' gesetzt wird. Wenn für die Größe des Symbols nur eine Symbol Form möglich ist, wird 'symbol_shape' entsprechend auf 'rectangle' oder 'square' gesetzt.
Default: 144
Setzt 'symbol_cols_min' und 'symbol_cols_max' auf angegebenen Wert.
Wertebereich: [10, 12, 14, .. 144]
Achtung: Das Setzen von 'symbol_cols' führt dazu, dass 'symbol_shape' auf 'any' gesetzt wird. Wenn bei der Größe des Symbols nur eine Symbol Form möglich ist, wird 'symbol_shape' entsprechend auf 'rectangle' oder 'square' gesetzt.
Setzt 'symbol_rows_min' und 'symbol_rows_max' auf angegebenen Wert.
Wertebereich: [8, 10, 12, .. 144]
Achtung: Das Setzen von 'symbol_rows' führt dazu, dass 'symbol_shape' auf 'any' gesetzt wird. Wenn bei der Größe des Symbols nur eine Symbol Form möglich ist, wird 'symbol_shape' entsprechend auf 'rectangle' oder 'square' gesetzt.
Mögliche Einschränkungen hinsichtlich der Form des Symbols (Rechteck und/oder Quadrat).
Achtung: Mit dem Setzen der Symbolform ändern sich eventuell die vorher gemachten Einschränkungen hinsichtlich der Symbolgröße. Für 'square' werden die minimalen Werte von 'symbol_cols_min' und 'symbol_rows_min' und die maximalen Werte von 'symbol_cols_max' und 'symbol_rows_max' verwendet. Zusätzlich gelten die Beschränkungen gemäß folgender Tabelle:
symbol_shape | 'any' | 'rectangle' | 'square' |
---|---|---|---|
'symbol_cols_min' | >= 10 | >= 18 | >= 10 |
'symbol_cols_max' | <= 144 | <= 48 | <= 144 |
'symbol_rows_min' | >= 8 | >= 8 | >= 10 |
'symbol_rows_max' | <= 144 | <= 16 | <= 144 |
Weiter wird für den Fall, dass 'symbol_cols_min' größer ist als 'symbol_rows_max' , 'symbol_shape' auf 'rectangle' gesetzt.
Seit HALCON 7.1.1 wird der gleiche Suchalgorithmus für beide Symbolformen verwendet wenn 'finder_pattern_tolerance' auf 'low' gesetzt ist. Für die Symbolsuche ist der Parameter in diesem Fall nicht mehr relevant. Ist 'finder_pattern_tolerance' dagegen auf 'high' oder 'any' gesetzt, kann der Wert von 'symbol_shape' die Symbolsuche deutlich beschleunigen wenn 'rectangle' oder 'square' gewählt wird.
Werteliste: 'rectangle' , 'square' , 'any'
Setzt 'symbol_cols_min' und 'symbol_rows_min' auf angegebenen Wert.
Setzt 'symbol_cols_max' und 'symbol_rows_max' auf angegebenen Wert.
Setzt 'symbol_cols_min' , 'symbol_cols_max' , 'symbol_rows_min' und 'symbol_rows_max' auf angegebenen Wert sowie 'symbol_shape' auf 'square' .
QR-Code (inklusive Finder-Pattern):
Typ des QR-Code-Modells. Unterstützt werden das ältere QR-Code-Modell '1' und das neue Modell '2' . Mit Angabe von 'any' oder '0' werden beide Modelle durchgegangen.
Werteliste: 1, 2, 'any' , 0
Default: 'any'
Kleinste zu lesende Symbol-Version. Die Symbolversion korrespondiert direkt mit der Symbolgröße. Version 1 entspricht dabei einem Symbol mit 21x21 Modulen, Version 2: 25x25 Module, usw. bis Version 40: 177x177 Module. Die maximale Symbolgröße beim Modell 1 ist 73x73 bzw. Version 14.
Wertebereich: [1 .. 40] (Modelltyp 1: [1 .. 14])
Default: 1
Größte zu lesende Symbol-Version:
Wertebereich: [1 .. 40] (Modelltyp 1: [1 .. 14])
Default: 40
Setzt 'version_min' und 'version_max' auf denselben Wert.
Kleinste zu lesende Symbolgröße in Modulen. Dieser Parameter kann alternativ zu 'version_min' verwendet werden:
Wertebereich: [21 .. 177] (Modelltyp 1: [21 .. 73])
Default: 21
Größte zu lesende Symbolgröße in Modulen. Dieser Parameter kann alternativ zu 'version_max' verwendet werden:
Wertebereich: [21 .. 177] (Modelltyp 1: [21 .. 73])
Default: 177
Setzt 'symbol_size_min' und 'symbol_size_max' auf denselben Wert.
PDF417:
Mindestanzahl der Datenspalten des Symbols in Codewords, d.h. exklusive der beiden Codewords des Start/Stop-Pattern sowie der beiden Codewords der Row-Indicators.
Wertebereich: [1 .. 30]
Default: 1
Höchstanzahl der Datenspalten des Symbols in Codewords, d.h. exklusive der beiden Codewords des Start/Stop-Pattern sowie der beiden Codewords der Row-Indicators.
Wertebereich: [1 .. 30]
Default: 20 (enhanced: 30)
Mindestanzahl der Zeilen des Symbols in Modulen.
Wertebereich: [3 .. 90]
Default: 5 (enhanced: 3)
Höchstanzahl der Zeilen des Symbols in Modulen.
Wertebereich: [3 .. 90]
Default: 45 (enhanced: 90)
Setzt 'symbol_cols_min' und 'symbol_cols_max' auf denselben Wert.
Setzt 'symbol_rows_min' und 'symbol_rows_max' auf denselben Wert.
Aztec Code (inklusive Finder-Pattern):
Format des Aztec Codes: Durch Leerzeichen getrennte Liste mit den Werten 'compact' , 'full_range' oder 'rune' .
Default: 'compact full_range'
Kleinste zu lesende Symbolgröße in Modulen:
[11..151]
Default: 11
Größte zu lesende Symbolgröße in Modulen:
[11..151]
Default: 151
Erscheinungsbild der Module im Bild:
Alle 2D-Datacode-Modelle:
Beschreibt die Polarität des Symbols im Bild und bestimmt damit, ob das Symbol im Bild dunkel vor hellem Hintergrund oder hell vor dunklem Hintergrund erscheint.
Werteliste: 'dark_on_light' , 'light_on_dark' , 'any' .
Default: 'dark_on_light' (enhanced: 'any' )
Angabe über eine mögliche Spiegelung des Symbols (entspricht einem Vertauschen von Spalten und Zeilen).
Werteliste: 'no' , 'yes' , 'any'
Default: 'any'
Robustheit der Dekodierung gegenüber Datacodes mit sehr kleiner
Modulgröße. Wird der Parameter 'small_modules_robustness'
auf 'high' gesetzt, so erhöht sich die Wahrscheinlichkeit,
dass Datacodes mit sehr kleinen Modulen dekodiert werden können.
Zusätzlich sollte in diesem Fall auch die minimale Modulgröße
entsprechend angepasst werden, d.h. 'module_size_min' bzw.
'module_width_min' (PDF417)
sollte auf die angenommene minimale Modulgröße bzw. Modulbreite
gesetzt werden. Ist 'small_modules_robustness' auf
'high' gesetzt, so kann sich der interne Speicherbedarf von
find_data_code_2d
deutlich erhöhen. Folglich sollte
'small_modules_robustness' im Normalfall auf 'low'
gesetzt werden.
Ist 'small_modules_robustness' auf 'high' gesetzt,
halbiert sich die maximal erlaubte Bildgröße (siehe
get_system
'halcon_xl' ).
Werteliste: 'low' , 'high'
Default: 'low' (enhanced: 'low' , maximum: 'high' )
Alle 2D-Datacode-Modelle bis auf Data Matrix ECC 200:
Minimaler Kontrast zwischen dem Symbolvordergrund und dem Bildhintergrund; dieser Wert kann nicht allein aus der Differenz der Grauwerte von Vorder- und Hintergrund bestimmt werden, er korrespondiert vielmehr auch mit dem Anstieg der Modulkanten und damit mit der Schärfe des Bildes.
Wertebereich: >=1
Default: 30 (enhanced: 10)
Alle 2D-Datacode-Modelle bis auf PDF417:
Minimale Größe der Module im Bild in Pixel. Für eine optimale Leserate sollten Module mindestens eine Größe von 3-4 Pixeln haben.
Wertebereich: [1 .. 100]
Default: 6 (enhanced: 2, maximum: 1)
Maximale Größe der Module im Bild in Pixel.
Wertebereich: [2 .. 100]
Default: 20 (enhanced: 100)
Setzt 'module_size_min' und 'module_size_max' auf denselben Wert
Die Lücken zwischen Modulen können mit Hilfe der 'module_gap*' Parameter angegeben werden, wie im folgenden Paragraph erklärt:
Es kann in drei Stufen angegeben werden, ob benachbarte
Vordergrundmodule direkt aneinanderstoßen oder ob es zwischen
ihnen eine Lücke geben kann. Füllen die Vordergrundmodule den
ihnen zustehenden Platz voll aus und stoßen sie direkt
aneinander, kann für die folgenden Parameter 'no'
angegeben werden.
'small' deutet auf einen sehr kleinen Zwischenraum,
< 10% der Modulfläche, und
'big' auf einen größeren Zwischenraum, < 50% der
Modulfläche, zwischen
benachbarten Modulen hin.
Diese letzten beiden Einstellungen sind u.U. auch dann
sinnvoll, wenn die Vordergrundmodule zwar zusammenhängen aber
(z.B. durch ein Überstrahlen der Aufnahme) den ihnen
zustehenden Platz nicht voll ausfüllen und dünner erscheinen.
Sind die Vordergrundmodule im Verhältnis zur Modulgröße nur
als sehr kleine Punkte im Bild sichtbar, ist i.d.R. eine geeignete
Vorverarbeitung zum Detektieren bzw. Vergrößern der Punkte notwendig
(z.B. mit Hilfe von gray_erosion_shape
oder
gray_dilation_shape
).
Minimale Lücke.
Werteliste: 'no' , 'small' , 'big'
Default: 'no'
Maximale Lücke.
Werteliste: 'no' , 'small' , 'big'
Default (Data Matrix ECC 200): 'no' (enhanced: 'small' , maximum: 'big' )
Default (Aztec Code, Micro QR Code, QR Code): 'small' (enhanced: 'big' )
Setzt 'module_gap_min' und 'module_gap_max' auf denselben Wert.
PDF417:
Minimale Breite der Module im Bild in Pixel.
Wertebereich: [1 .. 100]
Default: 3 (enhanced: 2, maximum: 1)
Maximale Breite der Module im Bild in Pixel.
Wertebereich: [2 .. 100]
Default: 15 (enhanced: 100)
Setzt 'module_width_min' und 'module_width_max' auf denselben Wert.
Minimales Seitenverhältnis der Module im Bild (Höhe zu Breite).
Wertebereich: [0.5 .. 20.0]
Default: 1.0
Maximales Seitenverhältnis der Module im Bild (Höhe zu Breite).
Wertebereich: [0.5 .. 20.0]
Default: 4.0 (enhanced: 10.0)
Setzt 'module_aspect_min' und 'module_aspect_max' auf denselben Wert.
Data Matrix ECC 200:
Maximale Abweichung des Winkels im L-förmigen Finder-Pattern vom (idealerweise) rechten Winkel; die Angabe erfolgt im Bogenmaß und korrespondiert mit perspektivischen Verzerrungen, die beim Druck des Symbols oder bei der Bildaufnahme auftreten können.
Wertebereich: [0.0 .. 0.5235]
Default: 0.1745 = (enhanced: 0.5235 = )
Toleranz der Suche gegenüber einem gestörten oder teilweise
fehlenden Finder-Pattern. Das Finder-Pattern umschließt sowohl die
L-förmige als auch die gegenüberliegende alternierende
Seite. In Abhängigkeit von diesem Parameter werden
verschiedene Algorithmen für die Suche in
find_data_code_2d
verwendet. In einem Fall
('low' ) wird davon ausgegangen, dass das
Finder-Pattern zum großen Teil vorhanden ist und kaum
Störungen aufweist. Im anderen Fall ('high' ) kann
das Finder-Pattern gestört oder teilweise fehlend sein,
ohne dass die Erkennung beeinträchtigt wird. Zu beachten
ist allerdings, dass bei dieser Variante die Parameter für
die Symbolsuche möglichst stark mit
set_data_code_2d_param
eingeschränkt werden
sollten, da ansonsten eine erhöhte Rechenzeit für
find_data_code_2d
zu erwarten ist. Zu beachten ist
außerdem, dass sich beide Algorithmen leicht in ihrer
Robustheit voneinander unterscheiden. Dies kann dazu
führen, dass es selbst bei Symbolen mit intaktem
Finder-Pattern in Abhängigkeit von
'finder_pattern_tolerance' zu unterschiedlichen
Ergebnissen kommt. Wenn 'high' ausgewählt wird,
können z.B. nur Symbole mit festem Gitter gefunden werden
(siehe unten), wodurch die Robustheit gegenüber
perspektivischen Verzerrungen abnimmt. Im Fall
'any' werden beide Algorithmen ausgeführt.
Werteliste: 'low' , 'high' , 'any'
Default: 'low' (enhanced: 'low' , maximum: 'any' )
Toleranz der Suche beim Auftreten starker lokaler Kontrastvariationen (z.B. bei Reflexionen oder Überbelichtung). Abhängig von diesem Parameter wird zwischen zwei Algorithmen gewählt. Im Falle von 'high' ist die Robustheit gegenüber starken lokalen Kontrastvariationen erhöht. Für 'low' wird ein Algorithmus gewählt, der zwar etwas weniger robust bei lokalen Kontrastvariationen ist, dafür aber schneller. Unter normalen Umständen ist daher 'low' zu bevorzugen. Setzt man den Parameter auf 'any' , so werden beide Varianten ausgeführt.
Werteliste: 'low' , 'high' , 'any'
Default: 'low' (enhanced: 'low' , maximum: 'any' )
Angabe darüber, ob die Größe der Module in einem gewissen Rahmen variieren darf oder nicht. In Abhängigkeit von diesem Parameter werden verschiedene Algorithmen für die Berechnung der Modulpositionen verwendet. In einem Fall ('fixed' ) wird ein festes Gitter, bei dem die Abstände zwischen den Modulmittelpunkten alle gleich sind, verwendet. Im anderen Fall ('variable' ) wird das Gitter an der alternierenden Seite des Finder-Patterns ausgerichtet. Bei 'any' werden beide Varianten für das Gitter nacheinander ausprobiert. Zu beachten ist, dass der Wert von 'module_grid' ignoriert wird, wenn 'finder_pattern_tolerance' auf 'high' gesetzt ist. In diesem Fall wird immer von einem festen Gitter ausgegangen.
Werteliste: 'fixed' , 'variable' , 'any'
Default: 'fixed' (enhanced: 'any' )
QR Code:
Anzahl von Position-Detection-Patterns, die im Bild gut sichtbar sein müssen, damit ein Symbolkandidat generiert wird.
Wertebereich: [2, 3]
Default: 3 (enhanced: 2)
Aztec Code:
Toleranz der Suche gegenüber einem gestörten oder teilweise
fehlenden Finder-Pattern.
Abhängig von diesem Parameter werden verschiedene Algorithmen
für die Suche in find_data_code_2d
verwendet. Für
'low' wird angenommen, dass alle Ringe des Finder-Patterns
extrahiert werden können. Für 'high' wird angenommen, dass
mindestens einer der Ringe des Finder-Patterns extrahiert werden
kann. Da dadurch mehr Kandidaten gefunden werden, erhöht sich
die Laufzeit der Suche für 'high' .
Wertebereich: ['low' , 'high' ]
Default: 'low' (enhanced: 'high' )
Um die Robustheit des Aztec Code Lesers zu erhöhen, kann die Anzahl der Pyramidenebenen, die zusätzlich zu den durch die minimale und maximale Modulgröße bedingten Ebenen untersucht werden sollen, angegeben werden. Dies erhöht die Laufzeit der Suche, insbesondere wenn kein Code gefunden wird.
Wertebereich: [0... 2]
Default: 0
Allgemeines Modellverhalten:
Alle 2D-Datacode-Modelle:
Steuert, ob bestimmte Zwischenergebnisse bei der
Symbolsuche mit find_data_code_2d
nur temporär
oder persistent im Modell gespeichet werden sollen.
Bei der temporären Speicherung (default) ist der
Speicherbedarf von find_data_code_2d
deutlich
geringer.
Die persistente Speicherung erlaubt hingegen, nach der
Symbolsuche auf einzelne Zwischenergebnisse zuzugreifen,
etwa wenn untersucht werden soll, warum einzelne Symbole
nicht gelesen werden konnten.
Der Speicherbedarf von find_data_code_2d
kann weiter
reduziert werden, indem 'persistence' auf -1
gesetzt wird. In diesem Fall werden nur noch die Daten gespeichert,
die nötig sind um die dekodierten Daten abzufragen. Das hat
zur Folge, dass die Druckbildkontrolle mit dieser Einstellung
für 'persistence' nicht verwendet werden kann.
Werteliste: 0 (temporär) oder 1 (persistent)
Default: 0
Steuert, ob Kandidaten, die nicht erfolgreich dekodiert werden
konnten, beim Modell gespeichert werden.
Um den Speicherbedarf des Modells zu reduzieren, sollte dieser
Parameter auf 'yes' gesetzt werden. In diesem Fall ist zu
beachten, dass mit get_data_code_2d_objects
oder
get_data_code_2d_results
keine Information über
Kandidaten abgefragt werden kann, die nicht erfolgreich
dekodiert werden konnten.
Werteliste: 'yes' , 'no'
Default: 'no'
Steuert das Verhalten von find_data_code_2d
bei
der Detektion von Symbolen, die hinsichtlich der
Symbolgröße nicht den Modellvorgaben entsprechen.
Diese können entweder verworfen werden ('yes' )
oder trotz der abweichenden Größe als Ergebnis
zurückgeliefert werden ('no' ).
Werteliste: 'yes' (strikt), 'no' (nicht strikt)
Default: 'yes'
Setzt die erwartete Zeichenkodierung des im Symbol kodierten Strings. Es ist möglich UTF-8 oder die Zeichenkodierung der aktuellen Systemeinstellung zu wählen. Falls notwendig wird der String entsprechend umkodiert. Im Raw Modus wird der String nicht verändert.
Werteliste: 'utf8' , 'locale' , 'raw'
Default: 'utf8'
Mit Hilfe dieses Parameters ist es möglich, dass
find_data_code_2d
nach einer definierten Zeit in ms
abbricht. Dies ist vor allem dann nützlich, wenn maximale
Zykluszeiten eingehalten werden müssen.
Alle bis zu diesem Abbruch gewonnenen Ergebnisse sind
anschließend verfügbar und können mit
get_data_code_2d_results
abgerufen werden.
Werden Werte kleiner oder gleich Null übergeben, wird der Timeout
deaktiviert (Default).
Die zeitliche Genauigkeit des Timeouts liegt bei ca. 10 ms. Sie hängt
von vielen Faktoren ab, u.a. von der Geschwindigkeit des Rechners,
der Bildgröße und dem 'timer_mode' , der über
set_system
gesetzt wurde.
find_data_code_2d
wirft keinen Fehler, falls ein Timeout
auftritt. Um zu prüfen, ob find_data_code_2d
unterbrochen
wurde, kann der Parameter 'aborted' mit
get_data_code_2d_results
abgefragt werden.
Im Trainingsmodus von find_data_code_2d
wird der Timeout
ignoriert.
Typische Werte: 'false' , -1, 20 .. 100
Default: 'false'
Mit dieser Option ist es möglich find_data_code_2d
von einem
anderen Thread aus abzubrechen. Wenn set_data_code_2d_param
mit 'abort' aufgerufen wird, wird einer Instanz von
find_data_code_2d
mit dem Model DataCodeHandle
in
einem anderen Thread signalisiert abzubrechen. Falls es keine solche
find_data_code_2d
Instanz mit diesem Model gibt, passiert
nichts.
Es ist möglich, dass der Operator find_data_code_2d
nicht
sofort abbricht. Er muss zunächst einen internen Abbruchpunkt
erreichen, an dem ein sauberes Verlassen des Operators möglich ist.
Dies hängt von Rahmenbedingungen wie Rechnerleistung ab und kann
ungefähr bis zu 10ms benötigen. Im Trainingsmodus von
find_data_code_2d
wird der Parameter ignoriert.
Hinweis: Dies ist die einzige Aktion mit Datacode Handles, die von unterschiedlichen Threads genutzt werden kann, ohne dass zusätzliche Synchronisierung nötig ist.
Standardwert: 'true' (Der Wert wird nicht ausgewertet.)
Das Referenzbild, auf dem die Qualitätswerte Symbol Contrast, Modulation, Reflectance Margin und Fixed Pattern Damage bestimmt werden, wird durch eine künstliche Blendeneinstellung (kreisförmiger Mean-Filter) aus dem Originalbild gewonnen. Dieser Parameter bestimmt die Filtergröße als Anteil der Modulgröße. Laut Standard sollte dieser Wert je nach Anwendung zwischen 0.5 und 0.8 liegen (siehe ISO/IEC 15415:2011 Anhang D.2).
Wertebereich: [0 .. 1]
Standardwert: 0.8
Alle 2D-Datacode-Modelle bis auf Aztec Code:
Steuert das Verhalten von find_data_code_2d
bei
der Detektion von Symbolen deren Ruhezone fehlt oder starke
Defekte aufweist:
'yes' (Symbole mit fehlender oder defekter Ruhezone
werden verworfen) oder 'no' (Symbole
werden, wenn sie gelesen werden können, als Ergebnis
zurückgeliefert). Der 'status' von Ergebnissen, die
verworfen wurden ist 'quiet zone is missing' .
Werteliste: 'yes' , 'no'
Default: 'no'
Data Matrix ECC 200:
Bestimmt die Auswahl der Kandidatenregionen, die verwendet werden, um Symbole im Bild zu finden. Wird dieser Parameter auf 'extensive' gesetzt, so erhöht sich die Anzahl der generierten Kandidatenregionen und damit die Wahrscheinlichkeit einen Code zu finden. Eine größere Anzahl an Kandidaten kann jedoch auch zu höheren Laufzeiten führen. Wenn 'candidate_selection' auf 'default' gesetzt ist, werden weniger Kandidatenregionen verwendet. In den meisten Fällen ist die kleinere Anzahl von Kandidaten ausreichend.
Werte: 'default' , 'extensive'
Standardwert: 'default' (enhanced: 'extensive' )
Steuert den Dekodierschritt bei Data Matrix ECC 200. Wenn dieser
Parameter auf 'raw' gesetzt ist, können auch Symbole gelesen
werden, deren Aussehen und Fehlerkorrekturverfahren dem Standard
ISO/IEC 16022:2006 entsprechen, die jedoch eine andere Enkodierung
verwenden. Die dekodierten Daten entsprechen den fehlerkorrigierten
Rohdaten, können mit dem Parameter 'decoded_data' von
get_data_code_2d_results
abgefragt werden und müssen
vom Benutzer weiterverarbeitet werden.
Werte: 'default' , 'raw'
Standardwert: 'default'
Beim Setzen der Modellparameter sollte den folgenden Punkten besondere Beachtung geschenkt werden:
Ist der Parameter 'strict_model' auf 'yes' eingestellt, was standardmäßig der Fall ist, werden Symbole, die nicht den mit 'symbol_rows*' , 'symbol_cols*' , 'symbol_size*' oder 'version*' gemachten Größenvorgaben entsprechen, nicht gelesen. Dieses Verhalten kann dazu ausgenutzt werden, um im Bild nach Symbolen einer bestimmten Größe zu suchen, während von dieser Größe abweichende Symbole bewusst ignoriert werden sollen. Das kann jedoch auch zu Problemen führen, insbesondere dann wenn aus einer Serie von Datacodes ein Symbol zum Einstellen des Modells als Beispiel herausgegriffen wurde, in der späteren Anwendung jedoch unterschiedlich große Datacodes vorkommen können, was in der Praxis relativ häufig der Fall ist.
Auf die Laufzeit von find_data_code_2d
wird sich vor
allem das Setzen der folgenden Parameter auswirken, und zwar in
erster Linie dann, wenn im Bild nicht die geforderte
Anzahl an Datacodes gefunden werden kann: 'polarity' ,
'module_size_min' (Data Matrix ECC 200 und QR Code)
bzw. 'module_width_min' und
'module_aspect_min' (PDF417) und bei sehr kleinen
minimalen Modulgrößen auch die Parameter
'module_gap_*' (Data Matrix ECC 200, QR Code und Aztec Code),
für QR Code auch 'position_pattern_min' . Ist bei Data Matrix
ECC 200 Symbolen 'finder_pattern_tolerance' auf 'high'
oder 'any' gesetzt, sollte die Symbolgröße so stark
wie möglich mit 'symbol_size_min' ,
'symbol_size_max' , 'symbol_size' und
'symbol_shape' eingeschränkt werden.
Dieser Operator modifiziert den Zustand des folgenden Eingabeparameters:
Während der Ausführung dieses Operators muss der Zugriff auf den Wert dieses Parameters synchronisiert werden, wenn er über mehrere Threads hinweg verwendet wird.
DataCodeHandle
(input_control, Zustand wird modifiziert) datacode_2d →
(handle)
Handle des zu verwendenden 2D-Datacode-Modells.
GenParamName
(input_control) attribute.name(-array) →
(string)
Namen der generischen Parameter, die für den 2D-Datacode eingestellt werden sollen.
Defaultwert: 'polarity'
Werteliste: 'abort' , 'additional_levels' , 'candidate_selection' , 'contrast_min' , 'contrast_tolerance' , 'decoding_scheme' , 'default_parameters' , 'discard_undecoded_candidates' , 'finder_pattern_tolerance' , 'format' , 'mirrored' , 'model_type' , 'module_aspect' , 'module_aspect_max' , 'module_aspect_min' , 'module_gap' , 'module_gap_max' , 'module_gap_min' , 'module_grid' , 'module_size' , 'module_size_max' , 'module_size_min' , 'module_width' , 'module_width_max' , 'module_width_min' , 'persistence' , 'polarity' , 'position_pattern_min' , 'quality_isoiec15415_aperture_size' , 'slant_max' , 'small_modules_robustness' , 'strict_model' , 'strict_quiet_zone' , 'string_encoding' , 'symbol_cols' , 'symbol_cols_max' , 'symbol_cols_min' , 'symbol_rows' , 'symbol_rows_max' , 'symbol_rows_min' , 'symbol_shape' , 'symbol_size' , 'symbol_size_max' , 'symbol_size_min' , 'timeout' , 'trained' , 'version' , 'version_max' , 'version_min'
GenParamValue
(input_control) attribute.value(-array) →
(string / integer / real)
Werte der generischen Parameter, die für den 2D-Datacode eingestellt werden sollen.
Defaultwert: 'light_on_dark'
Wertevorschläge: 'standard_recognition' , 'enhanced_recognition' , 'maximum_recognition' , 'yes' , 'no' , 'any' , 'dark_on_light' , 'light_on_dark' , 'square' , 'rectangle' , 'small' , 'big' , 'fixed' , 'variable' , 'low' , 'high' , 'default' , 'extensive' , 'utf8' , 'locale' , 'raw' , 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
* 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' set_data_code_2d_param (DataCodeHandle, 'polarity', \ 'light_on_dark') * 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)
set_data_code_2d_param
liefert den Wert 2 (H_MSG_TRUE), falls die
übergebenen Parameter korrekt sind.
Ansonsten wird eine Fehlerbehandlung durchgeführt.
create_data_code_2d_model
,
read_data_code_2d_model
get_data_code_2d_param
,
find_data_code_2d
,
write_data_code_2d_model
query_data_code_2d_params
,
get_data_code_2d_param
,
get_data_code_2d_results
,
get_data_code_2d_objects
Data Code