set_bar_code_paramT_set_bar_code_paramSetBarCodeParamSetBarCodeParamset_bar_code_param (Operator)

Name

set_bar_code_paramT_set_bar_code_paramSetBarCodeParamSetBarCodeParamset_bar_code_param — Setzen ausgewählter Parameter des Barcode-Modells.

Signatur

set_bar_code_param( : : BarCodeHandle, GenParamName, GenParamValue : )

Herror T_set_bar_code_param(const Htuple BarCodeHandle, const Htuple GenParamName, const Htuple GenParamValue)

void SetBarCodeParam(const HTuple& BarCodeHandle, const HTuple& GenParamName, const HTuple& GenParamValue)

void HBarCode::SetBarCodeParam(const HTuple& GenParamName, const HTuple& GenParamValue) const

void HBarCode::SetBarCodeParam(const HString& GenParamName, double GenParamValue) const

void HBarCode::SetBarCodeParam(const char* GenParamName, double GenParamValue) const

void HBarCode::SetBarCodeParam(const wchar_t* GenParamName, double GenParamValue) const   (Nur Windows)

static void HOperatorSet.SetBarCodeParam(HTuple barCodeHandle, HTuple genParamName, HTuple genParamValue)

void HBarCode.SetBarCodeParam(HTuple genParamName, HTuple genParamValue)

void HBarCode.SetBarCodeParam(string genParamName, double genParamValue)

def set_bar_code_param(bar_code_handle: HHandle, gen_param_name: MaybeSequence[str], gen_param_value: MaybeSequence[Union[float, int, str]]) -> None

Beschreibung

Der Operator set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamSetBarCodeParamset_bar_code_param erlaubt es, Parameter, welche Eigenschaften des Barcodes beschreiben oder das Verhalten des Modells bei der Symbolsuche steuern, zu verändern. Damit kann auf Besonderheiten des Barcodes oder dessen Abbildung durch den Bildsensor eingegangen werden. Alle Parameter können auch direkt beim Anlegen des Modells mit create_bar_code_modelcreate_bar_code_modelCreateBarCodeModelCreateBarCodeModelCreateBarCodeModelcreate_bar_code_model übergeben werden. Die aktuelle Konfiguration kann mit Hilfe von get_bar_code_paramget_bar_code_paramGetBarCodeParamGetBarCodeParamGetBarCodeParamget_bar_code_param ausgelesen werden.

Es folgt eine Übersicht über die verschiedenen generischen Parameter mit den jeweiligen Wertebereichen und Defaultwerten:

Größe der Barcode Elemente:

Die beiden ersten Parameter, 'element_size_min'"element_size_min""element_size_min""element_size_min""element_size_min""element_size_min" und 'element_size_max'"element_size_max""element_size_max""element_size_max""element_size_max""element_size_max", beeinflussen die Suche nach Kandidatenregionen und die Dekodierung der Barcodes. Sie werden aber nicht strikt als Grenzen für die Größe der Elemente gefundener Barcodes verwendet. D.h. es können auch Barcodes gefunden werden, deren Elemente schmaler als 'element_size_min'"element_size_min""element_size_min""element_size_min""element_size_min""element_size_min" oder breiter als 'element_size_max'"element_size_max""element_size_max""element_size_max""element_size_max""element_size_max" sind.

Achtung: Beim Ändern der Größe über den Operator set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamSetBarCodeParamset_bar_code_param, werden die Parameterwerte 'element_size_min'"element_size_min""element_size_min""element_size_min""element_size_min""element_size_min" und 'element_size_max'"element_size_max""element_size_max""element_size_max""element_size_max""element_size_max" auf Konsistenz überprüft. Die beiden Parameter sollten im gleichen Aufruf gesetzt werden.

'element_size_min'"element_size_min""element_size_min""element_size_min""element_size_min""element_size_min":

Die minimale Größe eines Basiselements (auch als 'Modul' oder 'narrow bar' bezeichnet, je nach Barcodetyp), d.h. die minimale Dicke der schmalsten Striche und Zwischenräume des speziellen Barcodetyps. Der Wert dieses Parameters ist in Pixel definiert. Für Barcodes mit niedriger Auflösung sollte der Wert auf 1.5 reduziert werden, ggf. sogar auf bis zu 0.6. Falls der Wert unter 2.0 gesetzt wird, wird ein zusätzlicher Dekodierversuch unternommen, der im Abschnitt über 'small_elements_robustness'"small_elements_robustness""small_elements_robustness""small_elements_robustness""small_elements_robustness""small_elements_robustness" des Operators set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamSetBarCodeParamset_bar_code_param beschrieben wird. Für sehr große Barcodes kann der Wert entsprechend vergrößert werden, was kürzere Laufzeiten mit sich bringt.

Typischer Wertebereich: [1.2, .., 10.0]

Wertebereich: [0.6, .., 64]

Standardwert: 2.0

'element_size_max'"element_size_max""element_size_max""element_size_max""element_size_max""element_size_max":

Die maximale Größe eines Basiselements (auch als 'Modul' oder 'narrow bar' bezeichnet, je nach Barcodetyp), d.h. die maximale Dicke der schmalsten Striche und Zwischenräume des speziellen Barcodetyps. Der Wert dieses Parameters ist in Pixel definiert. Er sollte groß genug sein, damit für das komplette Symbol die Kandidatenregion gefunden wird. Anderseits darf er nicht so groß gewählt werden, dass zwei benachbarte Barcodes zu einem einzelnen Kandidaten verschmelzen.

Typischer Wertebereich: [4.0, .., 60.0]

Wertebereich: [1, .., 256]

Standardwert: 8.0

'element_size_variable'"element_size_variable""element_size_variable""element_size_variable""element_size_variable""element_size_variable":

In manchen Barcodeaufnahmen variiert die Breite des kleinsten Elements über den Bereich des Barcodes. Diese Veränderungen entstehen durch perspektivische Projektion oder durch Deformation der Oberfläche, auf welcher der Barcode gedruckt ist (z.B. eine Tonnenverzerrung auf einer Flasche). Standardmäßig kann der Barcodeleser solche Verzerrungen nicht ausgleichen. Sollte die Einstellung 'element_size_variable'"element_size_variable""element_size_variable""element_size_variable""element_size_variable""element_size_variable" auf 'true'"true""true""true""true""true" gesetzt sein, wird versucht, solche Deformationen lokal bei der Dekodierung auszugleichen. Dies kann dazu führen, dass Barcodes auch unter solchen Bedingungen gelesen werden können. Man beachte, dass nicht alle Deformationen ausgeglichen werden können.

Der Parameter 'element_size_variable'"element_size_variable""element_size_variable""element_size_variable""element_size_variable""element_size_variable" ist nur für folgende Barcodetypen implementiert:

Bei anderen Barcodetypen hat dieser Parameter keinen Effekt.

Werte: ['false'"false""false""false""false""false", 'true'"true""true""true""true""true"]

Standardwert: 'false'"false""false""false""false""false"

'barcode_height_min'"barcode_height_min""barcode_height_min""barcode_height_min""barcode_height_min""barcode_height_min":

Die minimale Höhe des Barcodes. Der Wert dieses Parameters ist in Pixel definiert. Die Voreinstellung mit -1 bedeutet, dass intern die Höhe des Barcodes automatisch entsprechend den anderen Einstellung gewählt wird. Bei sehr flachen Barcodes mit einer Höhe von weniger als 16 Pixeln ist es sinnvoll die Höhe manuell einzustellen, damit der Barcode gefunden und gelesen werden kann. Die minimale Höhe beträgt 8 Pixel. Bei sehr hohen Barcodes, z.B. mit 70 Pixeln und mehr, kann das manuelle Setzen auf die entsprechende Höhe zu einer Beschleunigung beim Lesen führen.

Typischer Wertebereich: [-1, 8, .., 64]

Standardwert: -1

'barcode_width_min'"barcode_width_min""barcode_width_min""barcode_width_min""barcode_width_min""barcode_width_min":

Die minimale Breite des Barcodes im Bild. Der Wert dieses Parameters ist in Pixel definiert. Die Breite eines Barcodes hängt von mehreren Faktoren ab:

Falls diese Eigenschaften in einer Anwendung nahezu unverändert bleiben, sollte dieser Parameter gesetzt werden, um die Geschwindigkeit und Robustheit des Barcode-Lesers zu erhöhen. Der Standardwert von -1 bedeutet, dass der Barcode-Leser einen geeigneten Minimalwert anhand der gesuchten Barcode-Typen und des Parameters 'element_size_min'"element_size_min""element_size_min""element_size_min""element_size_min""element_size_min" schätzt.

Typischer Wertebereich: [-1, 40, 50, 60, ...]

Standardwert: -1

'barcode_width_max'"barcode_width_max""barcode_width_max""barcode_width_max""barcode_width_max""barcode_width_max":

Die maximale Breite des Barcodes im Bild. Der Wert dieses Parameters ist in Pixel definiert. Die Breite eines Barcodes hängt von mehreren Faktoren ab:

Dieser Parameter kann die Robustheit bei bekannter maximaler Breite der zu lesenden Barcodes erhöhen. Insbesondere kann das Verschmelzen von nahe beieinanderliegenden Barcodes zuverlässig vermieden werden. Im Allgemeinen sollte das Setzen dieses Parameters nur in Ausnahmefällen notwendig sein. Für den Standardwert von -1 wird die maximale Barcode Breite nicht eingeschränkt.

Typischer Wertebereich: [-1, 300, 400, 500, ...]

Standardwert: -1

Scanparameter:

'num_scanlines'"num_scanlines""num_scanlines""num_scanlines""num_scanlines""num_scanlines":

Die maximale Anzahl von Scanlinien, die während des Scannens eines (Kandidat-)Symbols benutzt werden. Wenn 'num_scanlines'"num_scanlines""num_scanlines""num_scanlines""num_scanlines""num_scanlines" nicht gesetzt ist (der Parameter hat einen Wert von 0), wird die Anzahl der Scanlinien nach einer internen Regel bestimmt: 10 für alle einzeiligen Barcodes, 20 für GS1 DataBar Stacked beziehungsweise GS1 DataBar Stacked Omnidirectional und 55 für GS1 DataBar Expanded Stacked. Durch diesen Parameter kann die Geschwindigkeit in zwei Fällen gesteigert werden. Im ersten Fall beinhaltet das Bild viele falsche Kandidaten. Während der Barcode selbst normalerweise nach ein oder zwei Scanvorgängen dekodiert werden kann (außer gestapelte Barcodes, siehe unten), wird ein falscher Kandidat mit dem Defaultwert von 10 Scanlinien gescannt, was die Laufzeit unnötig verlängert. Folglich kann die Geschwindigkeit durch eine reduzierte Anzahl der Scanlinien erhöht werden. Generell lässt sich sagen, dass Bilder höherer Qualität weniger Scanlinien benötigen als Bilder von niedrigerer Qualität. Für ein durchschnittliches Bild sollte ein Wert zwischen 2 und 5 ausreichend sein. Sollte ein Barcode jedoch nach Verringerung der Scanlinien nicht mehr gefunden werden, so muss die Anzahl der Scanlinien wieder erhöht werden. Der zweite Fall betrifft gestapelte Barcodes (derzeit GS1 DataBar Stacked, GS1 DataBar Stacked Omnidirectional und GS1 DataBar Expanded Stacked). Hier werden alle Scanlinien bewertet - im Gegensatz zu einzeiligen Barcodes (z.B. Code 128, EAN 13 oder GS1 DataBar Limited), wo das Scannen nach erfolgreicher Dekodierung des Codes beendet wird. Der Scanvorgang ist eine der zeitaufwändigsten Phasen des Operators find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCodefind_bar_code. Deswegen kann die Anpassung des Parameters 'num_scanlines'"num_scanlines""num_scanlines""num_scanlines""num_scanlines""num_scanlines" große Geschwindigkeitsvorteile bringen. Das gilt insbesondere für GS1 DataBar Expanded Stacked. Ein GS1 DataBar Expanded Stacked Symbol kann in der Regel aus bis zu 11 Zeilen bestehen. Damit jede Zeile robust von jeweils 5 Scanlinien gelesen wird, sind im Operator 55 Scanlinien für den allgemeinen Fall vorgesehen. Wenn nur Symbole mit geringer Zeilenanzahl zu erwarten sind, sollte 'num_scanlines'"num_scanlines""num_scanlines""num_scanlines""num_scanlines""num_scanlines" auf 1.5 bis 5 Scanlinien pro erwartete Zeile reduziert werden.

Falls dieser Parameter auf einen Wert gesetzt wird, der kleiner ist als die Einstellung für den Parameter 'min_identical_scanlines'"min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines", so wird der Wert für 'min_identical_scanlines'"min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines" automatisch auf den Wert von 'num_scanlines'"num_scanlines""num_scanlines""num_scanlines""num_scanlines""num_scanlines" reduziert.

Dieser Parameter kann mit dem Operator set_bar_code_param_specificset_bar_code_param_specificSetBarCodeParamSpecificSetBarCodeParamSpecificSetBarCodeParamSpecificset_bar_code_param_specific spezifisch für unterschiedliche Barcodetypen gesetzt werden.

Typische Werte: [0, 5, 10, 20, ...]

Standardwert: 0

'min_identical_scanlines'"min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines":

Mit diesem Parameter lässt sich die Wahrscheinlichkeit verringern, dass Barcodes falsch gelesen werden oder an Stellen gefunden werden, die keine Barcodes darstellen. Der Parameter legt die minimale Anzahl von Scanlinien fest, welche identische Ergebnisse liefern müssen, damit die Dekodierung eines Symbols akzeptiert wird.

Wenn 'min_identical_scanlines'"min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines" auf den Wert 0 gesetzt ist (welches der Standardwert für alle Barcodetypen außer '2/5 Industrial' und '2/5 Interleaved' ist), wird der Barcode dekodiert, sobald eine Scanlinie erfolgreich dekodiert wurde. Falls die Einstellung 'majority_voting'"majority_voting""majority_voting""majority_voting""majority_voting""majority_voting" aktiviert ist, wird ein anderes Verfahren angewandt (siehe Abschnitt über 'majority_voting'"majority_voting""majority_voting""majority_voting""majority_voting""majority_voting"). Analog hierzu reicht bei gestapelten Barcodes eine erfolgreich dekodierte Scanlinie pro Barcodezeile. Dieser Parameter kann auf 2 oder höher gesetzt werden, um zu verhindern, dass Barcodes unbeabsichtigt gefunden werden. Dies kann insbesondere dann hilfreich sein, wenn schlechte Bildqualität oder verrauschte Bildregionen dazu führen, dass eine Scanlinie falsche Strichkanten findet. Dieser Parameter kann auch die Anzahl falsch gefundener Barcodes in Bildern verringern, in welchen Symbole unterschiedlichen Barcodetyps gleichzeitig erscheinen.

Man beachte, dass der Standardwert für diesen Parameter für die meisten Barcodetypen 0 ist. Lediglich ist der Standardwert 2 für die Barcodetypen '2/5 Industrial' und '2/5 Interleaved'. Der Grund dafür ist, dass diese Barcodetypen leicht fälschlicher Weise in Text und anderen Störmustern erkannt werden, wenn der Parameter 'min_identical_scanlines'"min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines" auf 0 oder 1 gesetzt ist.

Dieser Parameter kann mit dem Operator set_bar_code_param_specificset_bar_code_param_specificSetBarCodeParamSpecificSetBarCodeParamSpecificSetBarCodeParamSpecificset_bar_code_param_specific spezifisch für unterschiedliche Barcodetypen gesetzt werden.

Wenn vereinigte Scanlinien (siehe 'merge_scanlines'"merge_scanlines""merge_scanlines""merge_scanlines""merge_scanlines""merge_scanlines")verwendet werden, drückt 'min_identical_scanlines'"min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines" aus, in wie vielen Scanlinien eine Kante erfolgreich erkannt werden muss (siehe get_bar_code_objectget_bar_code_objectGetBarCodeObjectGetBarCodeObjectGetBarCodeObjectget_bar_code_object, 'scanlines_merged_edges'"scanlines_merged_edges""scanlines_merged_edges""scanlines_merged_edges""scanlines_merged_edges""scanlines_merged_edges").

Typische Werte: [0, 2, 3, ...]

Standardwert:
Barcodetyp min_identical_scanlines
2/5 Industrial 2
2/5 Interleaved 2
alle Anderen 0
'majority_voting'"majority_voting""majority_voting""majority_voting""majority_voting""majority_voting":

Dieser Parameter steuert das Verhalten bei der Auswahl unterschiedlicher Dekodierergebnisse pro Scanlinie. Falls der Parameter auf 'false'"false""false""false""false""false" gesetzt ist, wird ein erfolgreiches Dekodierergebnis zurückgegeben, sobald eine minimale Anzahl an identisch dekodierten Scanlinien gefunden wurde (siehe Abschnitt über 'min_identical_scanlines'"min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines" für weitere Details). Setzt man diesen Parameter auf 'true'"true""true""true""true""true", so wird ein Mehrheitsvotum unter Einbeziehung aller Scanlinien durchgeführt. Das zurückgegebene Endergebnis wird dann jenes sein, welches von den meisten Scanlinien dekodiert wurde. Man beachte, dass die Einstellung 'true'"true""true""true""true""true" zu leicht erhöhten Laufzeiten führt, denn es müssen fast alle Scanlinien ausgewertet werden anstatt nur die minimal identischen Scanlinien.

Um die Robustheit gegenüber falschen Dekodierungen zu erhöhen, sollte dieser Parameter auf 'true'"true""true""true""true""true" gesetzt werden.

Dieser Parameter wird nur für Barcodetypen unterstützt, die nicht gestapelt sind.

Werte: ['false'"false""false""false""false""false", 'true'"true""true""true""true""true"]

Standardwert: 'false'"false""false""false""false""false"

'stop_after_result_num'"stop_after_result_num""stop_after_result_num""stop_after_result_num""stop_after_result_num""stop_after_result_num":

Anzahl erfolgreich dekodierter Barcodes nach der die Dekodierung angehalten wird. Falls dieser Parameter nicht gesetzt ist (der Parameter hat einen Wert von 0), wird versucht alle Kandidaten zu dekodieren. Dieser Parameter wird typischerweise gesetzt, wenn die erwartete Anzahl von Barcodes im Voraus bekannt ist. Dann kann der Barcode-Leser die weitere Dekodierung von Kandidaten abbrechen und die Gesamtdekodierzeit wird reduziert.

Dieser Parameter kann mit dem Operator set_bar_code_param_specificset_bar_code_param_specificSetBarCodeParamSpecificSetBarCodeParamSpecificSetBarCodeParamSpecificset_bar_code_param_specific spezifisch für unterschiedliche Barcodetypen gesetzt werden.

Typische Werte: [0, 1, 2, ...]

Standardwert: 0

'orientation'"orientation""orientation""orientation""orientation""orientation":

Erwarteter Barcode Orientierungswinkel. Ein potentieller (Kandidat-) Barcode hat Striche ähnlicher Orientierung. Man kann die Parameter 'orientation'"orientation""orientation""orientation""orientation""orientation" und 'orientation_tol'"orientation_tol""orientation_tol""orientation_tol""orientation_tol""orientation_tol" anpassen, um den Wertebereich ['orientation'"orientation""orientation""orientation""orientation""orientation"-'orientation_tol'"orientation_tol""orientation_tol""orientation_tol""orientation_tol""orientation_tol", 'orientation'"orientation""orientation""orientation""orientation""orientation"+'orientation_tol'"orientation_tol""orientation_tol""orientation_tol""orientation_tol""orientation_tol"] zu definieren. find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCodefind_bar_code bearbeitet nur Kandidatenregionen, deren Striche einen durchschnittlichen Orientierungswinkel haben, der in dem obigen Wertebereich liegt. Falls die Barcodes nur mit einer bestimmter Orientierung in den bearbeiteten Bildern erscheinen, so kann man den Wertebereich entsprechend reduzieren, sodass falsche Kandidaten früher erkannt werden und sich so die Ausführungszeit des Operator verkürzt. Diese Strategie bringt vor allem dann Vorteile, wenn die bearbeiteten Bilder viel Hintergrundtextur mit falsch orientierten Kandidaten enthalten.

Ausführlichere Informationen zu dem Orientierungswinkel können beim Operator get_bar_code_resultget_bar_code_resultGetBarCodeResultGetBarCodeResultGetBarCodeResultget_bar_code_result(...,'orientation'"orientation""orientation""orientation""orientation""orientation",...) nachgelesen werden. Im Gegensatz zu get_bar_code_resultget_bar_code_resultGetBarCodeResultGetBarCodeResultGetBarCodeResultget_bar_code_result, wird hier die eigentliche Leserichtung nicht berücksichtigt, und es sind deswegen nur Winkel in dem Wertebereich [-90.0 ... 90.0] von Interesse. Die einzige Ausnahme dazu sind Barcodes vom Typ PharmaCode, welche keine eindeutige Leserichtung haben und somit auch in der Regel zwei dekodierte Ergebnisse zurückliefern: mit einem Wertebereich von [-180.0 ... 180.0] kann eine spezielle Leserichtung und damit auch ein einzelnes Ergebnis gewählt werden.

Dieser Parameter kann mit dem Operator set_bar_code_param_specificset_bar_code_param_specificSetBarCodeParamSpecificSetBarCodeParamSpecificSetBarCodeParamSpecificset_bar_code_param_specific spezifisch für unterschiedliche Barcodetypen gesetzt werden.

Typischer Wertebereich: [-90.0, ..., 90.0]

Standardwert: 0.0

'orientation_tol'"orientation_tol""orientation_tol""orientation_tol""orientation_tol""orientation_tol":

Toleranz der Orientierung. Siehe 'orientation'"orientation""orientation""orientation""orientation""orientation" für weitere Erklärungen. Wie bereits erklärt wurde, ist nur der Wertebereich [-90.0 ... 90.0] berücksichtigt, was mit einem 'orientation_tol'"orientation_tol""orientation_tol""orientation_tol""orientation_tol""orientation_tol" von 90.0 ganz abgedeckt wird. Deswegen sind die Werte von 'orientation_tol'"orientation_tol""orientation_tol""orientation_tol""orientation_tol""orientation_tol" auf den Wertebereich [0.0 ... 90.0] eingeschränkt. Dabei stellt ein Wert von 90.0 die Orientierungsbeschränkung grundsätzlich aus.

Dieser Parameter kann mit dem Operator set_bar_code_param_specificset_bar_code_param_specificSetBarCodeParamSpecificSetBarCodeParamSpecificSetBarCodeParamSpecificset_bar_code_param_specific spezifisch für unterschiedliche Barcodetypen gesetzt werden.

Typischer Wertebereich: [0.0, ..., 90.0]

Standardwert: 90.0

'quiet_zone'"quiet_zone""quiet_zone""quiet_zone""quiet_zone""quiet_zone":

Steuert die Verifikation der Ruhezonen eines Barcodesymbols. Wenn diese eingeschaltet ist, werden Scanlinien verworfen, falls unerwartete Striche in den Ruhezonen gefunden werden.

Mögliche Werte:

Die Verifikation der Ruhezonen ist insbesondere für das Lesen von Barcodes im 'auto'-Modus wichtig. Sie verhindert, dass einfache Barcodes innerhalb einer Strichsequenz eines längeren und/oder komplexeren Barcodes gefunden werden. Normalerweise liefern Werte zwischen 2 und 4 optimale Ergebnisse, weil dadurch falsche Barcodes unterdrückt werden, während kleine Störungen wie Text, Etikettenkanten, etc. immer noch toleriert werden.

Dieser Parameter kann mit dem Operator set_bar_code_param_specificset_bar_code_param_specificSetBarCodeParamSpecificSetBarCodeParamSpecificSetBarCodeParamSpecificset_bar_code_param_specific spezifisch für unterschiedliche Barcodetypen gesetzt werden.

Zu beachten: Die Ruhezonen dienen zur Überprüfung, dass innerhalb dieser Zone keine anderen Striche findbar sind, es ist jedoch nicht notwendig, dass sie als Ganzes auf dem Bild gefunden werden müssen. Dies bedeutet, falls eine gesetzte Ruhezone nicht als Ganzes auf dem Bild enthalten ist, wird nur der Teil im Bild überprüft während der Teil außerhalb des Bildes als störungsfrei angenommen wird.

Werte: 'false'"false""false""false""false""false", 'true'"true""true""true""true""true", 'tolerant'"tolerant""tolerant""tolerant""tolerant""tolerant", 1, ..., 100

Standardwert: 'false'"false""false""false""false""false"

'start_stop_tolerance'"start_stop_tolerance""start_stop_tolerance""start_stop_tolerance""start_stop_tolerance""start_stop_tolerance":

Fordert ein tolerantes ('high'"high""high""high""high""high") oder ein strenges ('low'"low""low""low""low""low") Matchingkriterium bei der Suche nach Start-, bzw. Stoppmuster in einer Scanlinie. Ein tolerantes Kriterium erhöht die allgemeine Leserate, insbesondere in Bildern mit schlechtem Kontrast. Anderseits kann diese Einstellung zu ungültigen Dekodierungen in verrauschten Bildern, oder in Bildern mit Symbolen anderer Barcodetyps führen. Ein strenges Kriterium erhöht die Robustheit gegenüber falscher Dekodierung, kann aber auch die allgemeine Leserate mindern. Es ist zu beachten, dass momentan zwei unterschiedliche Kriterien nur für Code 128 und GS1-128 implementiert sind.

Dieser Parameter kann mit dem Operator set_bar_code_param_specificset_bar_code_param_specificSetBarCodeParamSpecificSetBarCodeParamSpecificSetBarCodeParamSpecificset_bar_code_param_specific spezifisch für unterschiedliche Barcodetypen gesetzt werden. Obwohl man diesen Parameter für alle Barcodetypen setzen kann, hat er derzeit, wie bereits erwähnt, nur Wirkung auf Code 128 und GS1-128.

Werte: ['high'"high""high""high""high""high", 'low'"low""low""low""low""low"]

Standardwert: 'high'"high""high""high""high""high"

'min_code_length'"min_code_length""min_code_length""min_code_length""min_code_length""min_code_length":

Minimale Anzahl dekodierter Zeichen. Falls ein Barcode gefunden wird, dessen Länge geringer ist als der Wert der für den Parameter 'min_code_length'"min_code_length""min_code_length""min_code_length""min_code_length""min_code_length" angegeben ist, so wird das Resultat verworfen und nicht von find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCodefind_bar_code oder decode_bar_code_rectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2decode_bar_code_rectangle2 zurückgegeben. Dieser Parameter ist hilfreich um falsches Dekodieren in Anwendungen zu vermeiden in denen die minimale Anzahl zu dekodierender Zeichen im Voraus bekannt ist.

Man beachte, dass der Standardwert für diesen Parameter für die meisten Barcodetypen 0 ist. Lediglich für die Barcodetypen '2/5 Industrial' und '2/5 Interleaved' ist der Standardwert 3. Der Grund dafür ist, dass diese Barcodetypen leicht fälschlicher Weise in Text und anderen Störmustern mit einer Länge von 2 Zeichen erkannt werden.

Wertevorschläge: [0, 1, 2, ...]

Standardwert:
Barcodetyp min_code_length
2/5 Industrial 3
2/5 Interleaved 3
alle Anderen 0
'merge_scanlines'"merge_scanlines""merge_scanlines""merge_scanlines""merge_scanlines""merge_scanlines":

Wenn nicht genug Scanlinien (siehe 'min_identical_scanlines'"min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines") erfolgreich dekodiert werden können, beispielsweise weil der Barcode teilweise verdeckt oder beschädigt ist, wird versucht, die vorhandenen Scanlinien zu vereinigen. Anschließend wird versucht, die vereinigten Scanlinien zu dekodieren. Dieser zusätzliche Dekodierschritt wird nur für Barcodetypen durchgeführt, die nicht gestapelt sind und kann für eine verbesserte Geschwindigkeit ausgeschaltet werden.

Werte: ['true'"true""true""true""true""true", 'false'"false""false""false""false""false"]

Standardwert: 'true'"true""true""true""true""true"

'small_elements_robustness'"small_elements_robustness""small_elements_robustness""small_elements_robustness""small_elements_robustness""small_elements_robustness":

Wenn nicht genug Scanlinien (siehe 'min_identical_scanlines'"min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines") erfolgreich dekodiert werden können, beispielsweise weil der Barcode eine geringe Auflösung hat (kleiner als 2.0 Pixel Elementgröße) wird ein zusätzlicher Dekodierversuch unternommen.

Dieser zusätzliche Dekodierschritt wird nur für Barcodetypen durchgeführt, die nicht gestapelt sind und falls der Parameter 'element_size_min'"element_size_min""element_size_min""element_size_min""element_size_min""element_size_min" kleiner als 2.0 Pixel gesetzt ist.

Zusätzliche Informationen zu diesem Dekodierversuch können über den Operator get_bar_code_resultget_bar_code_resultGetBarCodeResultGetBarCodeResultGetBarCodeResultget_bar_code_result abgefragt werden, indem 'status_small_elements_robustness'"status_small_elements_robustness""status_small_elements_robustness""status_small_elements_robustness""status_small_elements_robustness""status_small_elements_robustness" für den Parameter ResultNameResultNameResultNameResultNameresultNameresult_name gesetzt wird.

Für Anwendungsfälle mit sehr kleinen Elementen (kleiner als 1.3 Pixel) ist es von Vorteil, wenn der Kamerasensor in Bezug auf den Barcode leicht rotiert ist (z.B. um 7 Grad). In dieser niedrigen Auflösung sind wichtige Informationen über den Barcode nur dann über die Zeilen oder Spalten des Sensors verteilt, wenn er rotiert ist. Die beiden folgenden Abbildungen zeigen diesen Zusammenhang.

Ein Barcode mit 0.9 Elementgröße ohne Rotation des Sensors. Die relevanten Informationen des Barcodes sind nicht mehr im Bild vorhanden.
Der gleiche Barcode wie in der vorherigen Abbildung mit Rotation des Sensors. Die Zeilen des Bildes beinhalten mehr Informationen über den Barcode und dieser kann erfolgreich dekodiert werden.

Ein weiterer wichtiger Hinweis ist, dass die Unschärfe durch das optische System möglichst gering gehalten werden muss.

Das Eingabebild sollte nicht vorverarbeitet werden (z.B. über Operatoren wie emphasizeemphasizeEmphasizeEmphasizeEmphasizeemphasize, zoom_image_sizezoom_image_sizeZoomImageSizeZoomImageSizeZoomImageSizezoom_image_size oder mean_imagemean_imageMeanImageMeanImageMeanImagemean_image), da sonst wichtige Informationen verloren gehen würden.

Man beachte, dass es unter optimalen Bedingungen (wenig Unschärfe und leichte Rotation des Sensors) möglich ist, Barcodes mit bis zu 0.6 Pixel Elementgröße zu dekodieren.

Der zusätzliche Dekodierversuch ist nur kompatibel mit Byte-Bildern als Eingabe und kann für eine verbesserte Geschwindigkeit ausgeschaltet werden.

Werte: ['true'"true""true""true""true""true", 'false'"false""false""false""false""false"]

Standardwert: 'true'"true""true""true""true""true"

Erscheinungsbild der Module im Bild:

'meas_thresh'"meas_thresh""meas_thresh""meas_thresh""meas_thresh""meas_thresh":

Innerhalb einer Scanlinie werden Kanten mit Hilfe eines Schwellenwerts gefunden. 'meas_thresh'"meas_thresh""meas_thresh""meas_thresh""meas_thresh""meas_thresh" bestimmt, wie dieser Schwellenwert relativ zum Dynamikbereich der Grauwerte entlang der Scanlinie berechnet wird. Liegen in dem Barcode Störungen vor oder ist das Rauschen groß, so sollte 'meas_thresh'"meas_thresh""meas_thresh""meas_thresh""meas_thresh""meas_thresh" auf größere Werte gesetzt werden.

Typischer Wertebereich: [0.05 .. 0.2]

Werte: (0.0, .., 1.0] - ohne 0.0

Standardwert: 0.05

'meas_thresh_abs'"meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs":

Der Parameter 'meas_thresh_abs'"meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs" wird benutzt, um die falsche Kantendetektion zu verhindern. Sollte eine Scanlinie in eine Bildregion mit zu kleinem Dynamikbereich geraten (z.B. eine überwiegend weiße Region mit Grauwerten nahe 255), wird der Schwellenwert zum Kantendetektion unangemessen klein berechnet. Das führt des Öfteren zur Detektion großer Mengen falscher Kanten. Falls der Schwellenwert, der auf dem Parameter 'meas_thresh'"meas_thresh""meas_thresh""meas_thresh""meas_thresh""meas_thresh" basiert, kleiner als der Wert des Parameters 'meas_thresh_abs'"meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs" wird, wird der letztere Wert als Schwellenwert genommen. Standardmäßig ist 'meas_thresh_abs'"meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs" auf 5.0 gesetzt. Sollten Bilder mit höherem Rauschpegel behandelt werden, könnte ein Erhöhen des Parameterwertes nützlich sein. Anderseits, wenn rauschfreie Bilder mit niedrigem Kontrast behandelt werden, könnte dieser Parameter die Detektion richtiger Kanten stören. In solchen Fällen ist es empfehlenswert, den Parameterwert zu mindern oder den Parameter sogar zu deaktivieren (auf 0.0 setzen).

Typischer Wertebereich: [0.0, .., 10.0]

Werte: [0.0, .., 65535]

Standardwert: 5.0

'contrast_min'"contrast_min""contrast_min""contrast_min""contrast_min""contrast_min":

Minimaler Kontrast zwischen dem Vorder- und Hintergrund der Barcode-Elemente. Wird dieser Parameter auf Werte über 5 gesetzt, optimiert der Operator find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCodefind_bar_code die Kandidatensuche auf den Kontrastbereich oberhalb des 'contrast_min'"contrast_min""contrast_min""contrast_min""contrast_min""contrast_min" Wertes. find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCodefind_bar_code wird dann alle Kandidaten verwerfen, die einen Kontrast unterhalb des Schwellenwertes 'contrast_min'"contrast_min""contrast_min""contrast_min""contrast_min""contrast_min" besitzen. Hohe 'contrast_min'"contrast_min""contrast_min""contrast_min""contrast_min""contrast_min" Werte führen daher in der Regel zu einer verbesserten Laufzeit des Operators find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCodefind_bar_code. Es ist zu beachten, dass Barcodes mit einem geringeren Kontrast als dem Schwellenwert 'contrast_min'"contrast_min""contrast_min""contrast_min""contrast_min""contrast_min" nicht gefunden werden. Aus Effizienzgründen ist der berechnete Kontrast eines Kandidaten nur eine Approximation. Es sollte ein niedrigeren Schwellenwert verwendet werden, falls ein Barcode verworfen wird und dieser einen Kontrast besitzt, der nahe an dem gewählten Schwellenwert 'contrast_min'"contrast_min""contrast_min""contrast_min""contrast_min""contrast_min" liegt.

Typische Werte: [0, 40, 90, 120, ... ]

Standardwert: 0

Druckqualität spezifische Größen:

'quality_isoiec15416_reflectance_reference'"quality_isoiec15416_reflectance_reference""quality_isoiec15416_reflectance_reference""quality_isoiec15416_reflectance_reference""quality_isoiec15416_reflectance_reference""quality_isoiec15416_reflectance_reference":

Die Reflektanzwerte, die zur Berechnung der Qualitätswerte Symbol Contrast, Minimal Reflectance und Minimal Edge Contrast verwendet werden, werden mit einem Referenzgrauwert für die Reflektanz normiert. Dieser kann unter anderem durch die Aufnahme eines Bariumsulfat oder Magnesiumoxid Musters bestimmt werden, siehe ISO/IEC 15416:2016 Abschnitt 5.2. Wertebereich: [1 .. 255]

Standardwert: 255

Symbol spezifische Größen:

'check_char'"check_char""check_char""check_char""check_char""check_char":

Barcodes mit optionalem Prüfzeichen werden anhand dieses Parameters interpretiert. Darunter fallen z.B. Code 39, Codabar, 2/5 Industrial und 2/5 Interleaved. Der Standardwert von 'absent'"absent""absent""absent""absent""absent" gibt an, dass kein Prüfzeichen vorliegt. In diesem Fall wird keine Prüfung durchgeführt, und alle Zeichen werden als Daten zurückgeliefert.

Ist dieser Parameter auf 'present'"present""present""present""present""present" gesetzt, so wird ein Prüfzeichen erwartet und benutzt um die Korrektheit des Barcodes zu prüfen. Ist die Prüfsumme korrekt, so wird das Prüfzeichen aus den Nutzdaten entfernt. Falls dieses Entfernen nicht erwünscht ist, kann der Parameterwert 'preserved'"preserved""preserved""preserved""preserved""preserved" eingestellt werden um das Prüfzeichen trotz Prüfung zu erhalten. Ist die Prüfsumme jedoch fehlerhaft, so wird der entsprechende Barcode nicht als Ergebnis zurückgeliefert.

Barcodetypen mit obligatorischem Prüfzeichen haben den Parameter 'check_char'"check_char""check_char""check_char""check_char""check_char" stets auf 'present'"present""present""present""present""present" gesetzt. Ob das Prüfzeichen aus den Nutzdaten entfernt wird oder erhalten bleibt, hängt jedoch vom Standard des jeweiligen Codetypen ab. Beispiele für solche Codetypen sind Code 128, EAN-8, EAN-13 und UPC-A.

Dieser Parameter kann mit dem Operator set_bar_code_param_specificset_bar_code_param_specificSetBarCodeParamSpecificSetBarCodeParamSpecificSetBarCodeParamSpecificset_bar_code_param_specific spezifisch für unterschiedliche Barcodetypen gesetzt werden.

Werte: ['absent'"absent""absent""absent""absent""absent", 'present'"present""present""present""present""present", 'preserved'"preserved""preserved""preserved""preserved""preserved"]

Standardwert: 'absent'"absent""absent""absent""absent""absent"

'composite_code'"composite_code""composite_code""composite_code""composite_code""composite_code":

An den meisten GS1-tauglichen Barcodes kann eine 2D GS1-Composite Code Komponente angehängt sein. Wenn 'composite_code'"composite_code""composite_code""composite_code""composite_code""composite_code" auf 'CC-A/B'"CC-A/B""CC-A/B""CC-A/B""CC-A/B""CC-A/B" gesetzt ist, wird die Composite-Komponente lokalisiert und dekodiert. Standardmäßig, ist 'composite_code'"composite_code""composite_code""composite_code""composite_code""composite_code" auf 'none'"none""none""none""none""none" gesetzt und so wird der Composite-Komponente neben dem Barcode ignoriert. Besitzt ein Barcode des gesuchten Typs keine Composite Komponente, so wird beim Aufruf von find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCodefind_bar_code nur das Ergebnis des Barcodes zurückgeliefert. Zur Zeit werden GS1 Composite Codes nur zusammen mit einem Barcode der Familie GS1 DataBar unterstützt.

Dieser Parameter kann mit dem Operator set_bar_code_param_specificset_bar_code_param_specificSetBarCodeParamSpecificSetBarCodeParamSpecificSetBarCodeParamSpecificset_bar_code_param_specific spezifisch für unterschiedliche Barcodetypen gesetzt werden.

Werte: ['none'"none""none""none""none""none", 'CC-A/B'"CC-A/B""CC-A/B""CC-A/B""CC-A/B""CC-A/B"]

Standardwert: 'none'"none""none""none""none""none"

'upce_encodation'"upce_encodation""upce_encodation""upce_encodation""upce_encodation""upce_encodation":

UPC-E-Barcodes können in verschiedenen Ausgabeformaten zurückgegeben werden. Standardmäßig ist 'upce_encodation'"upce_encodation""upce_encodation""upce_encodation""upce_encodation""upce_encodation" auf 'ucc-12'"ucc-12""ucc-12""ucc-12""ucc-12""ucc-12" gesetzt und der dekodierte String wird im UCC-12-Format (bestehend aus 12 Ziffern) zurückgegeben. Wird 'upce_encodation'"upce_encodation""upce_encodation""upce_encodation""upce_encodation""upce_encodation" auf 'zero-suppressed'"zero-suppressed""zero-suppressed""zero-suppressed""zero-suppressed""zero-suppressed" gesetzt, so wird das Ergebnis im Zero-Suppressed-Format (also mit unterdrückten Nullen an definierten Stellen) zurückgegeben. Dieses Format besteht aus führender Null, sechs kodierten Ziffern und einem implizit kodiertem Prüfzeichen. Dies entspricht dem Format, das von ISO/IEC 15420:2009 gefordert wird.

Dieser Parameter kann mit dem Operator set_bar_code_param_specificset_bar_code_param_specificSetBarCodeParamSpecificSetBarCodeParamSpecificSetBarCodeParamSpecificset_bar_code_param_specific spezifisch für den Barcodetype UPC-E gesetzt werden.

Werte: ['ucc-12'"ucc-12""ucc-12""ucc-12""ucc-12""ucc-12", 'zero-suppressed'"zero-suppressed""zero-suppressed""zero-suppressed""zero-suppressed""zero-suppressed"]

Standardwert: 'ucc-12'"ucc-12""ucc-12""ucc-12""ucc-12""ucc-12"

Training:

Neben dem manuellen Setzen der Modellparameter mit dem Operator set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamSetBarCodeParamset_bar_code_param ist es auch möglich, das Modell mit Hilfe von find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCodefind_bar_code anhand eines oder mehrerer Beispielbilder zu trainieren. Dazu muss zuerst ein Barcode-Modell im Trainings-Modus erstellt werden, oder ein bestehendes Barcode-Modell muss in den Trainings-Modus versetzt werden, indem man in set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamSetBarCodeParamset_bar_code_param als generischen Parameter GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name 'train'"train""train""train""train""train" übergibt. Der entsprechende Wert bei GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value bestimmt, welche Parameter gelernt werden sollen. Im einzelnen können die folgenden Werte gesetzt werden:

'all'"all""all""all""all""all":

Es werden alle trainierbaren Parameter gelernt.

'element_size_min'"element_size_min""element_size_min""element_size_min""element_size_min""element_size_min":

Minimale Größe eines Basiselements. Diese Einstellung trainiert den Parameter 'element_size_min'"element_size_min""element_size_min""element_size_min""element_size_min""element_size_min".

'element_size_max'"element_size_max""element_size_max""element_size_max""element_size_max""element_size_max":

Maximale Größe eines Basiselements. Diese Einstellung trainiert den Parameter 'element_size_max'"element_size_max""element_size_max""element_size_max""element_size_max""element_size_max".

'barcode_width_min'"barcode_width_min""barcode_width_min""barcode_width_min""barcode_width_min""barcode_width_min":

Minimale Barcode Breite. Diese Einstellung trainiert den Parameter 'barcode_width_min'"barcode_width_min""barcode_width_min""barcode_width_min""barcode_width_min""barcode_width_min".

'barcode_width_max'"barcode_width_max""barcode_width_max""barcode_width_max""barcode_width_max""barcode_width_max":

Maximale Barcode Breite. Diese Einstellung trainiert den Parameter 'barcode_width_max'"barcode_width_max""barcode_width_max""barcode_width_max""barcode_width_max""barcode_width_max".

'meas_thresh'"meas_thresh""meas_thresh""meas_thresh""meas_thresh""meas_thresh":

Relativer Schwellenwert zur Kantenbestimmung in Scanlinien. Diese Einstellung trainiert den Parameter 'meas_thresh'"meas_thresh""meas_thresh""meas_thresh""meas_thresh""meas_thresh".

'meas_thresh_abs'"meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs":

Absoluter Schwellenwert zur Kantenbestimmung in Scanlinien. Diese Einstellung trainiert den Parameter 'meas_thresh_abs'"meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs".

'orientation'"orientation""orientation""orientation""orientation""orientation":

Orientierung des Barcodes. Diese Einstellung trainiert die Parameter 'orientation'"orientation""orientation""orientation""orientation""orientation" und 'orientation_tol'"orientation_tol""orientation_tol""orientation_tol""orientation_tol""orientation_tol". Nach Abschluss des Trainings sollte der Wert für 'orientation_tol'"orientation_tol""orientation_tol""orientation_tol""orientation_tol""orientation_tol" noch um einen Toleranzwert erhöht werden um auch Barcodes zu finden deren Orientierung sich leicht außerhalb des trainierten Bereichs befindet.

Es können mehrere Parameter in einem Aufruf von find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCodefind_bar_code gemeinsam trainiert werden, indem 'train'"train""train""train""train""train" in set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamSetBarCodeParamset_bar_code_param in einem Tupel mehrfach mit den entsprechenden Werten übergeben wird: z.B. GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name = ['train','train']["train","train"]["train","train"]["train","train"]["train","train"]["train","train"] und GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value = ['element_size_min','element_size_max']["element_size_min","element_size_max"]["element_size_min","element_size_max"]["element_size_min","element_size_max"]["element_size_min","element_size_max"]["element_size_min","element_size_max"]. Weiterhin können - im Zusammenhang mit 'train'"train""train""train""train""train" = 'all'"all""all""all""all""all" - einzelne Parameter explizit vom Training ausgeschlossen werden, indem zusätzlich 'train'"train""train""train""train""train" mit den entsprechenden Parametern und einem vorangestellten '~'"~""~""~""~""~" gesetzt wird: z.B. GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name = ['train','train']["train","train"]["train","train"]["train","train"]["train","train"]["train","train"] und GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value = ['all','~orientation']["all","~orientation"]["all","~orientation"]["all","~orientation"]["all","~orientation"]["all","~orientation"] trainiert alle Parameter außer 'orientation'"orientation""orientation""orientation""orientation""orientation".

Anschließend muss für jedes zu trainierende Bild der Operator find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCodefind_bar_code aufgerufen werden.

Die folgenden Hinweise sollten im Zusammenhang mit dem Training beachtet werden:

Sonstiges:

'timeout'"timeout""timeout""timeout""timeout""timeout":

Mit Hilfe dieses Parameters ist es möglich, dass find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCodefind_bar_code 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_bar_code_resultget_bar_code_resultGetBarCodeResultGetBarCodeResultGetBarCodeResultget_bar_code_result 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 und dem 'timer_mode'"timer_mode""timer_mode""timer_mode""timer_mode""timer_mode", der über set_systemset_systemSetSystemSetSystemSetSystemset_system gesetzt wurde.

find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCodefind_bar_code wirft keinen Fehler, falls ein Timeout auftritt. Um zu prüfen, ob find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCodefind_bar_code abgebrochen wurde, kann der Parameter 'aborted'"aborted""aborted""aborted""aborted""aborted" mit get_bar_code_resultget_bar_code_resultGetBarCodeResultGetBarCodeResultGetBarCodeResultget_bar_code_result abgefragt werden.

Im Trainingsmodus von find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCodefind_bar_code wird der Timeout ignoriert.

Typische Werte: ['false'"false""false""false""false""false", -1, 20, .., 100]

Standardwert: 'false'"false""false""false""false""false"

'abort'"abort""abort""abort""abort""abort":

Mit dieser Option ist es möglich find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCodefind_bar_code von einem anderen Thread aus abzubrechen. Wenn set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamSetBarCodeParamset_bar_code_param mit 'abort'"abort""abort""abort""abort""abort" aufgerufen wird, wird einer Instanz von find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCodefind_bar_code mit dem Model BarCodeHandleBarCodeHandleBarCodeHandleBarCodeHandlebarCodeHandlebar_code_handle in einem anderen Thread signalisiert abzubrechen. Falls es keine solche find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCodefind_bar_code Instanz mit diesem Model gibt, passiert nichts.

Es ist möglich, dass der Operator find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCodefind_bar_code nicht sofort abbricht. Er muss zunächst einen interner 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_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCodefind_bar_code wird der Parameter ignoriert.

Hinweis: Dies ist die einzige Aktion mit Barcode Handles, die von unterschiedlichen Threads genutzt werden kann, ohne dass zusätzliche Synchronisierung nötig ist.

Standardwert: 'true'"true""true""true""true""true" (Der Wert wird nicht ausgewertet.)

'persistence'"persistence""persistence""persistence""persistence""persistence":

Steuert, ob bestimmte Zwischenergebnisse bei der Symbolsuche mit find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCodefind_bar_code temporär oder persistent im Modell gespeichert werden sollen. Zur Zeit ist es erforderlich 'persistence'"persistence""persistence""persistence""persistence""persistence" einzuschalten ('persistence'"persistence""persistence""persistence""persistence""persistence" = 1), wenn die Barcode Druckqualität bewertet werden muss (get_bar_code_resultget_bar_code_resultGetBarCodeResultGetBarCodeResultGetBarCodeResultget_bar_code_result mit Parameter 'quality_isoiec15416'"quality_isoiec15416""quality_isoiec15416""quality_isoiec15416""quality_isoiec15416""quality_isoiec15416") oder die Dekodierungs- Scanlinien inspiziert werden müssen (get_bar_code_objectget_bar_code_objectGetBarCodeObjectGetBarCodeObjectGetBarCodeObjectget_bar_code_object mit Parameter 'scanlines_all'"scanlines_all""scanlines_all""scanlines_all""scanlines_all""scanlines_all" oder 'scanlines_valid'"scanlines_valid""scanlines_valid""scanlines_valid""scanlines_valid""scanlines_valid"). Mit Einschalten von 'persistence'"persistence""persistence""persistence""persistence""persistence" steigt der Speicherbedarf für den Barcode-Leser allerdings auch.

Werte: [0, 1]

Standardwert: 0

Ausführungsinformationen

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.

Parameter

BarCodeHandleBarCodeHandleBarCodeHandleBarCodeHandlebarCodeHandlebar_code_handle (input_control, Zustand wird modifiziert)  barcode HBarCode, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des zu verwendenden Barcode-Modells.

GenParamNameGenParamNameGenParamNameGenParamNamegenParamNamegen_param_name (input_control)  attribute.name(-array) HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)

Namen der generischen Parameter, die für den Barcode eingestellt werden sollen.

Defaultwert: 'element_size_min' "element_size_min" "element_size_min" "element_size_min" "element_size_min" "element_size_min"

Werteliste: 'abort'"abort""abort""abort""abort""abort", 'barcode_height_min'"barcode_height_min""barcode_height_min""barcode_height_min""barcode_height_min""barcode_height_min", 'barcode_width_max'"barcode_width_max""barcode_width_max""barcode_width_max""barcode_width_max""barcode_width_max", 'barcode_width_min'"barcode_width_min""barcode_width_min""barcode_width_min""barcode_width_min""barcode_width_min", 'check_char'"check_char""check_char""check_char""check_char""check_char", 'composite_code'"composite_code""composite_code""composite_code""composite_code""composite_code", 'contrast_min'"contrast_min""contrast_min""contrast_min""contrast_min""contrast_min", 'element_size_max'"element_size_max""element_size_max""element_size_max""element_size_max""element_size_max", 'element_size_min'"element_size_min""element_size_min""element_size_min""element_size_min""element_size_min", 'element_size_variable'"element_size_variable""element_size_variable""element_size_variable""element_size_variable""element_size_variable", 'majority_voting'"majority_voting""majority_voting""majority_voting""majority_voting""majority_voting", 'meas_thresh'"meas_thresh""meas_thresh""meas_thresh""meas_thresh""meas_thresh", 'meas_thresh_abs'"meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs", 'merge_scanlines'"merge_scanlines""merge_scanlines""merge_scanlines""merge_scanlines""merge_scanlines", 'min_code_length'"min_code_length""min_code_length""min_code_length""min_code_length""min_code_length", 'min_identical_scanlines'"min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines", 'num_scanlines'"num_scanlines""num_scanlines""num_scanlines""num_scanlines""num_scanlines", 'orientation'"orientation""orientation""orientation""orientation""orientation", 'orientation_tol'"orientation_tol""orientation_tol""orientation_tol""orientation_tol""orientation_tol", 'persistence'"persistence""persistence""persistence""persistence""persistence", 'quality_isoiec15416_reflectance_reference'"quality_isoiec15416_reflectance_reference""quality_isoiec15416_reflectance_reference""quality_isoiec15416_reflectance_reference""quality_isoiec15416_reflectance_reference""quality_isoiec15416_reflectance_reference", 'quiet_zone'"quiet_zone""quiet_zone""quiet_zone""quiet_zone""quiet_zone", 'small_elements_robustness'"small_elements_robustness""small_elements_robustness""small_elements_robustness""small_elements_robustness""small_elements_robustness", 'start_stop_tolerance'"start_stop_tolerance""start_stop_tolerance""start_stop_tolerance""start_stop_tolerance""start_stop_tolerance", 'stop_after_result_num'"stop_after_result_num""stop_after_result_num""stop_after_result_num""stop_after_result_num""stop_after_result_num", 'timeout'"timeout""timeout""timeout""timeout""timeout", 'train'"train""train""train""train""train", 'upce_encodation'"upce_encodation""upce_encodation""upce_encodation""upce_encodation""upce_encodation"

GenParamValueGenParamValueGenParamValueGenParamValuegenParamValuegen_param_value (input_control)  attribute.value(-array) HTupleMaybeSequence[Union[float, int, str]]HTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)

Werte der generischen Parameter, die für den Barcode eingestellt werden sollen.

Defaultwert: 8

Wertevorschläge: 0, 0.1, 1, 1.5, 2, 8, 32, 45, 'true'"true""true""true""true""true", 'false'"false""false""false""false""false", 'present'"present""present""present""present""present", 'absent'"absent""absent""absent""absent""absent", 'none'"none""none""none""none""none", 'CC-A/B'"CC-A/B""CC-A/B""CC-A/B""CC-A/B""CC-A/B", 'auto'"auto""auto""auto""auto""auto", 'high'"high""high""high""high""high", 'low'"low""low""low""low""low", 'ucc-12'"ucc-12""ucc-12""ucc-12""ucc-12""ucc-12", 'zero-suppressed'"zero-suppressed""zero-suppressed""zero-suppressed""zero-suppressed""zero-suppressed"

Ergebnis

set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamSetBarCodeParamset_bar_code_param liefert den Wert 2 (H_MSG_TRUE), falls die übergebenen Parameter korrekt sind. Ansonsten wird eine Fehlerbehandlung durchgeführt.

Vorgänger

create_bar_code_modelcreate_bar_code_modelCreateBarCodeModelCreateBarCodeModelCreateBarCodeModelcreate_bar_code_model

Nachfolger

find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCodefind_bar_code

Alternativen

set_bar_code_param_specificset_bar_code_param_specificSetBarCodeParamSpecificSetBarCodeParamSpecificSetBarCodeParamSpecificset_bar_code_param_specific

Modul

Bar Code