Barcode

Liste der Operatoren ↓

Dieses Kapitel gibt eine Einführung zum Thema Barcodes und den wichtigsten Begriffen beim Finden und Dekodieren von Barcodes in HALCON.

Aufbau von Linearen (1D) Barcodes

Ein Barcode besteht aus mehreren dunklen Balken und hellen Leerzeichen. Dabei gibt es ein kleinstmögliches Element, also der schmalst-mögliche Balken, bzw. das schmalst-mögliche Leerzeichen des Barcodes, welches Modul genannt wird. Die Breite der Balken und Leerzeichen ist im Allgemeinen unterschiedlich, aber stets ein vielfaches des Moduls. Mehrere Balken und Leerzeichen ergeben ein Muster. Dieses Muster kodiert ein Symbol, welches in einer Dekodiertabelle festgehalten ist. Die Konventionen, wie ein solches binäres Muster ein Symbol kodiert und wie die Dekodiertabelle aussieht, führen zum jeweiligen Barcode-Typen. Nebst den Mustern zum Kodieren der Symbole gibt es noch Muster mit speziellen Aufgaben. Je nach Typ gibt es weitere Muster, die vorkommen können oder müssen:

Aufbau von zusammengesetzten Barcodes

Zusammengesetzte Barcodes (composite bar codes) bestehen aus folgenden Elementen:

Die folgende Abbildung zeigt ein Schema eines zusammengesetzten Barcodes.
image/svg+xml 1 6 8 7 5 4 2 3 9 0 1 2
Schematische Darstellung eines zusammengesetzten Barcodes anhand eines Beispiel-Barcodes des Typs UPC-A Composite: Linearer Barcode (schwarz), 2D Code (hell-blau) und das verbindende Muster (orange).

Lesen eines Barcodes

Um auf einem Bild einen Barcode lesen zu können, muss dieser zuerst gefunden werden. Die Regionen, in welchen HALCON einen Barcode vermutet, werden Kandidaten genannt.

Zum Lesen eines Kandidaten werden verschiedene Linien durch die Region gelegt, sogenannte Scanlinien. Obwohl theoretisch eine einzelne Scanlinie reichen würde, wird entlang jeder Scanlinie versucht, den Barcode zu dekodieren. Dadurch steigt die Chance, den Code richtig zu dekodieren. Zudem ermöglichen mehrere erfolgreich dekodierte Scanlinien zusätzliche Plausibilitätschecks, d.h., werden mehrere Scanlinien gleich gelesen, so sinkt das Risiko, den Barcode falsch zu dekodieren.
image/svg+xml H A L C O N
Schematische Darstellung verschiedener Scanlinien eines Kandidaten. Dabei wurden gewisse Scanlinien erfolgreich gelesen (grün), während andere fehlschlugen (rot).

Der Workflow und verschiedene Beispiele, wie Barcodes in HALCON gelesen werden können, finden sich im „Solution Guide I - Basics.


Liste der Operatoren

clear_bar_code_modelClearBarCodeModelClearBarCodeModelclear_bar_code_model
Löschen eines Barcode-Modells und Freigabe des verwendeten Speichers.
create_bar_code_modelCreateBarCodeModelCreateBarCodeModelcreate_bar_code_model
Anlegen eines generischen Modells für einen Barcode-Leser.
decode_bar_code_rectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2decode_bar_code_rectangle2
Lesen von Barcode-Symbolen innerhalb eines Rechtecks.
deserialize_bar_code_modelDeserializeBarCodeModelDeserializeBarCodeModeldeserialize_bar_code_model
Deserialisieren eines Barcode-Modells.
find_bar_codeFindBarCodeFindBarCodefind_bar_code
Suchen und Lesen von Barcode-Symbolen im Eingabebild.
get_bar_code_objectGetBarCodeObjectGetBarCodeObjectget_bar_code_object
Zugriff auf ikonische Objekte, die bei der Suche und der Dekodierung von Barcodes angelegt werden bzw. diese beschreiben.
get_bar_code_paramGetBarCodeParamGetBarCodeParamget_bar_code_param
Abfrage von einem oder mehreren Parameter, die das Barcode-Modell beschreiben.
get_bar_code_param_specificGetBarCodeParamSpecificGetBarCodeParamSpecificget_bar_code_param_specific
Abfrage von Parametern die zum Lesen eines Barcodes benutzt werden falls ein spezifischer Barcodetyp verarbeitet wird.
get_bar_code_resultGetBarCodeResultGetBarCodeResultget_bar_code_result
Abfrage von alphanumerischen Ergebnissen, die bei der Dekodierung von Barcode-Symbolen angefallen sind.
query_bar_code_paramsQueryBarCodeParamsQueryBarCodeParamsquery_bar_code_params
Liefert für das übergebene Barcode-Modell die Namen der Parameter, die in den set_bar_code*- und get_bar_code*-Operatoren benutzt werden können.
read_bar_code_modelReadBarCodeModelReadBarCodeModelread_bar_code_model
Liest ein Barcode-Modell aus einer Datei und legt ein neues Modell an.
serialize_bar_code_modelSerializeBarCodeModelSerializeBarCodeModelserialize_bar_code_model
Serialisieren eines Barcode-Modells.
set_bar_code_paramSetBarCodeParamSetBarCodeParamset_bar_code_param
Setzen ausgewählter Parameter des Barcode-Modells.
set_bar_code_param_specificSetBarCodeParamSpecificSetBarCodeParamSpecificset_bar_code_param_specific
Setzen ausgewählter Parameter des Barcode-Modells für gewählte Barcodetypen
write_bar_code_modelWriteBarCodeModelWriteBarCodeModelwrite_bar_code_model
Schreibt ein Barcode-Modell in eine Datei.