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:
-
Ruhezone (quiet-zone): Zone in der keine Kanten auftreten dürfen.
Sie wird vor dem Start- und nach dem Stoppzeichen benötigt, um den Code
zu finden.
-
Start- und Stoppzeichen: Legen Start, Ende und Richtung fest.
Damit kann der Code sowohl von links nach rechts als auch von rechts nach
links (und somit auf dem Kopf stehend) gelesen und dekodiert werden.
-
Prüfziffer: Ziffer, die als Sicherheitscheck dient. Mit ihr wird
überprüft, ob der Code richtig gelesen wurde.
-
Guard-Pattern: Spezielle Muster, die links, rechts, in der
Mitte oder als Zusatzsymbol vorkommen können.
-
Finder-Pattern: Spezielle Suchmuster zur Lokalisierung des Barcodes.
-
Add-on Symbol: Zusätzliche Symbole zur Kodierung ergänzender
Informationen. Diese Symbole sind als Barcodes begrenzter Länge kodiert.
Aufbau von zusammengesetzten Barcodes
Zusammengesetzte Barcodes (composite bar codes) bestehen aus folgenden
Elementen:
-
Linearer Barcode: Wie oben beschrieben.
-
2D Code: Für Erklärungen zu den 2D Codes wird auf den
„Solution Guide II-C - 2D Data Codes“
verwiesen.
-
Verbindendes Muster: Verbindet die beiden vorher gelisteten Codes
miteinander.
Die folgende Abbildung zeigt ein Schema eines zusammengesetzten Barcodes.
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.
Der generelle Ablauf und verschiedene Beispiele, wie Barcodes in HALCON
gelesen werden können, finden sich im „Solution Guide I - Basics
.
Liste der Operatoren
clear_bar_code_modelClearBarCodeModelclear_bar_code_modelClearBarCodeModelclear_bar_code_model
- Löschen eines Barcode-Modells und Freigabe des verwendeten
Speichers.
create_bar_code_modelCreateBarCodeModelcreate_bar_code_modelCreateBarCodeModelcreate_bar_code_model
- Anlegen eines generischen Modells für einen Barcode-Leser.
decode_bar_code_rectangle2DecodeBarCodeRectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2decode_bar_code_rectangle2
- Lesen von Barcode-Symbolen innerhalb eines Rechtecks.
deserialize_bar_code_modelDeserializeBarCodeModeldeserialize_bar_code_modelDeserializeBarCodeModeldeserialize_bar_code_model
- Deserialisieren eines Barcode-Modells.
find_bar_codeFindBarCodefind_bar_codeFindBarCodefind_bar_code
- Suchen und Lesen von Barcode-Symbolen im Eingabebild.
get_bar_code_objectGetBarCodeObjectget_bar_code_objectGetBarCodeObjectget_bar_code_object
- Zugriff auf ikonische Objekte, die bei der Suche und der Dekodierung
von Barcodes angelegt werden bzw. diese beschreiben.
get_bar_code_paramGetBarCodeParamget_bar_code_paramGetBarCodeParamget_bar_code_param
- Abfrage von einem oder mehreren Parameter, die das Barcode-Modell
beschreiben.
get_bar_code_param_specificGetBarCodeParamSpecificget_bar_code_param_specificGetBarCodeParamSpecificget_bar_code_param_specific
- Abfrage von Parametern die zum Lesen eines Barcodes benutzt werden
falls ein spezifischer Barcodetyp verarbeitet wird.
get_bar_code_resultGetBarCodeResultget_bar_code_resultGetBarCodeResultget_bar_code_result
- Abfrage von alphanumerischen Ergebnissen, die bei der
Dekodierung von Barcode-Symbolen angefallen sind.
query_bar_code_paramsQueryBarCodeParamsquery_bar_code_paramsQueryBarCodeParamsquery_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_modelReadBarCodeModelread_bar_code_modelReadBarCodeModelread_bar_code_model
- Liest ein Barcode-Modell aus einer Datei und legt ein neues Modell an.
serialize_bar_code_modelSerializeBarCodeModelserialize_bar_code_modelSerializeBarCodeModelserialize_bar_code_model
- Serialisieren eines Barcode-Modells.
set_bar_code_paramSetBarCodeParamset_bar_code_paramSetBarCodeParamset_bar_code_param
- Setzen ausgewählter Parameter des Barcode-Modells.
set_bar_code_param_specificSetBarCodeParamSpecificset_bar_code_param_specificSetBarCodeParamSpecificset_bar_code_param_specific
- Setzen ausgewählter Parameter des Barcode-Modells für gewählte
Barcodetypen
write_bar_code_modelWriteBarCodeModelwrite_bar_code_modelWriteBarCodeModelwrite_bar_code_model
- Schreibt ein Barcode-Modell in eine Datei.