get_bar_code_object
— Zugriff auf ikonische Objekte, die bei der Suche und der Dekodierung
von Barcodes angelegt werden bzw. diese beschreiben.
get_bar_code_object( : BarCodeObjects : BarCodeHandle, CandidateHandle, ObjectName : )
Der Operator get_bar_code_object
erlaubt den Zugriff auf
ikonische Objekte, die beim letzten Aufruf von find_bar_code
während der Suche nach Barcodes oder beim Lesen der gefundenen Symbole
angelegt wurden. Für den Zugriff muss neben dem Namen des gewünschten
Bildobjekts (ObjectName
) auch das zugrundeliegende Barcode-Modell
(BarCodeHandle
) angegeben werden. Außerdem muss in
CandidateHandle
ein Index auf ein dekodiertes Symbol oder einen
Symbolkandidaten, bzw. 'all' für alle dekodierten Symbole oder
Symbolkandidaten übergeben werden.
Je nachdem wie der Parameter ObjectName
ausgewählt ist, werden
die Ausgabeobjekten in BarCodeObjects
zurückgeliefert, wie
folgend:
Die Regionen von erfolgreich dekodierten Symbolen werden zurückgegeben.
Die Reihenfolge der Objekte entspricht der Reihenfolge der dekodierten
Zeichenfolgen im Operator get_bar_code_result
.
Die potentiellen Barcode-Regionen werden ausgegeben. Gibt es insgesamt
m Kandidaten und n erfolgreiche Ergebnisse, so können mit
CandidateHandle
gleich 0 bis (n-1) die ursprünglichen
Regionen der entsprechenden Ergebnisse und mit CandidateHandle
gleich n bis (m-1) die Regionen der erfolglosen Kandidaten abgerufen
werden.
Es werden XLD Konturen ausgegeben, welche die einzelnen Striche
innerhalb der Scanlinien darstellen. Das Auslesen der Scanlinien
kann nur erfolgen, wenn der Barcode mit find_bar_code
oder
decode_bar_code_rectangle2
im
'persistence' -Modus gelesen wurde (siehe
set_bar_code_param
). 'scanlines_all' stellt
alle Scanlinien dar, die von find_bar_code
möglicherweise
angelegt werden, um einen Barcode zu dekodieren.
'scanlines_valid' stellt nur diejenige 'scanlines_all'
dar, die erfolgreich dekodiert werden können. Bei einzeiligen Barcodes
gibt es mindestens eine 'scanlines_valid' je erfolgreich
dekodiertem Barcodesymbol. Im Gegensatz dazu liefert
'scanlines_valid' leere Objekte wenn die Dekodierung des
Symbols erfolglos war. Diese Regel ist für gestapelte Codes (wie z.B.
'GS1 DataBar Stacked' und 'GS1 DataBar Expanded
Stacked' ) ähnlich, allerdings bezieht sie sich auf die einzelnen
Zeilen, anstatt auf das ganze Barcodesymbol.
'scanlines_merged_edges' zeigt die Scanlinien und Kanten, die für die
Dekodierung der vereinigten Scanlinie verwendet wurden (Siehe
'merge_scanlines' in set_bar_code_param
).
'scanlines_all' stellt alle Scanlinien dar, die von
find_bar_code
möglicherweise angelegt werden, um einen Barcode
zu dekodieren.
'scanlines_valid' stellt nur diejenigen
Scanlinien dar, die erfolgreich dekodiert werden können. Die
Mindestanzahl an Scanlinien, die erfolgreich gelesen werden können
müssen, kann mit set_bar_code_param
mit dem Parameter
'min_identical_scanlines' angepasst werden.
Wenn die Dekodierung des Symbols erfolglos war, liefert
'scanlines_valid' leere Objekte. Diese Regel ist für
gestapelte Codes (wie z.B. 'GS1 DataBar Stacked' und
'GS1 DataBar Expanded Stacked' ) ähnlich, allerdings bezieht
sie sich auf die einzelnen Zeilen, anstatt auf das ganze Barcodesymbol.
'scanlines_merged_edges' zeigt die Scanlinien und Kanten, die für die
Dekodierung der vereinigten Scanlinien verwendet wurden (siehe
'merge_scanlines' in set_bar_code_param
).
get_bar_code_object
gibt jede Scanlinie als eigene XLD Kontur
zurück. Die XLD Konturen, die von
'scanlines_all' und 'scanlines_valid' zurückgegeben
werden, sind nur zur Visualisierung gedacht und bestehen deshalb aus
vielen XLD Punkten. Doppelte Linien werden zwischen Kanten benutzt, die
als Striche erkannt wurden, während einfache Linien für weiße Lücken
benutzt werden. Zusätzliche Informationen über jede Scanlinie können mit
get_bar_code_result
mit dem Parameter 'status'
erhalten werden.
Die '_plain'-Varianten 'scanlines_all_plain' und 'scanlines_valid_plain' geben die o.g. Scanlinien in vereinfachter Form zurück. Jede gefundene Kante wird hier als ein Punkt einer XLD-Kontur zurückgegeben, wobei für jede Scanlinie eine neue XLD-Kontur begonnen wird. Scanlinien, für die keine Kante gefunden wurde, werden nicht zurückgegeben.
BarCodeObjects
(output_object) object(-array) →
object
Ikonische Objekte, die als Zwischenergebnisse bei der Barcode-Suche oder deren Auswertung anfallen.
BarCodeHandle
(input_control) barcode →
(handle)
Handle des zu verwendenden Barcode-Modells.
CandidateHandle
(input_control) integer →
(string / integer)
Auswahl der Barcode-Ergebnisse oder Kandidaten, für die eine Information abgefragt werden soll.
Defaultwert: 'all'
Wertevorschläge: 0, 1, 2, 'all'
ObjectName
(input_control) string →
(string)
Name des ikonischen Objekts, das abgefragt werden soll.
Defaultwert: 'candidate_regions'
Werteliste: 'candidate_regions' , 'scanlines_all' , 'scanlines_all_plain' , 'scanlines_merged_edges' , 'scanlines_valid' , 'scanlines_valid_plain' , 'symbol_regions'
get_bar_code_object
liefert den Wert 2 (H_MSG_TRUE), falls die
übergebenen Parameter korrekt und die angeforderten Objekte für
die letzte Symbolsuche verfügbar sind.
Ansonsten wird eine Fehlerbehandlung durchgeführt.
Bar Code