| Operatoren |
get_data_code_2d_objects — Zugriff auf ikonische Objekte, die bei der Suche nach einem 2D-Datacode angelegt werden bzw. diesen beschreiben.
get_data_code_2d_objects( : DataCodeObjects : DataCodeHandle, CandidateHandle, ObjectName : )
Der Operator get_data_code_2d_objects erlaubt den Zugriff auf ikonische Objekte, die beim letzten Aufruf von find_data_code_2d während der Suche nach 2D-Datacodes oder beim Lesen der gefundenen Symbole angelegt wurden. Für den Zugriff muss neben dem Namen des gewünschten Bildobjekts (ObjectName) auch das zugrundeliegende 2D-Datacode-Modell (DataCodeHandle) angegeben werden. Außerdem muss in CandidateHandle ein Handle auf einen Symbolkandidaten, wie ihn find_data_code_2d oder get_data_code_2d_results liefern, oder ein String, der eine Gruppe von Kandidaten beschreibt (vgl. get_data_code_2d_results) übergeben werden.
Das Konzept des 2D-Datacode-Lesers ist bei der Einleitung zu Kapitel Identifizierung / Datacode beschrieben.
Für den Fall, dass 'discard_undecoded_candidates' in set_data_code_2d_param auf 'yes' gesetzt wurde, können Ergebnisse nur zu erfolgreich dekodierten Kandidaten abgefragt werden.
Es ist zu beachten, dass auf einige Objekte nur zugegriffen werden kann, wenn für das Modell die Persistenz auf 1 gesetzt wurde (vgl. set_data_code_2d_param). Das Setzen der Persistenz muss vor dem Aufruf von find_data_code_2d entweder beim Anlegen des Modells mit create_data_code_2d_model oder mit Hilfe von set_data_code_2d_param erfolgen.
Im einzelnen wird der Zugriff auf die folgenden Objekte unterstützt:
Regionen der Module
Alle Module, die als Vordergrund interpretiert wurden (Modulbit ist gesetzt).
Alle Module, die als Hintergrund interpretiert wurden (Modulbit ist nicht gesetzt).
Die hierbei zurückgelieferten Regionen entsprechen den Bildbereichen, in denen eine Interpretation der Module durchgeführt wurde. Die Abfrage dieser Werte kann, da ein Regionenarray zurückgegeben wird, immer nur für genau ein Ergebnisobjekt erfolgen, d.h. an CandidateHandle darf kein Gruppenbezeichner übergeben werden. Die Modellpersistenz muss auf den Wert 1 gesetzt sein. Und schließlich ist die Abfrage der Modulregionen nur für Symbole sinnvoll, die als 2D-Datacode-Symbole erkannt wurden und für die zumindest eine gültige Symbolgröße ermittelt werden konnte. Für Kandidaten, deren Bearbeitung vorher abgebrochen wurde, stehen die Modulregionen nicht zur Verfügung.
XLD Kontur
Die den Kandidaten oder das dekodierte Symbol umgebende XLD-Kontur.
Die Kontur kann für alle Kandidaten abgefragt werden, einzeln oder auch gruppenweise. Die Persistenzeinstellung spielt bei diesem Objekt keine Rolle.
Pyramidenbilder
Pyramidenbild, in dem der Kandidat gefunden wurde.
Pyramidenbild, in dem die weitere Bearbeitung des Kandidaten erfolgte.
Die Persistenzeinstellung spielt bei diesen Bildern ebenfalls keine Rolle.
Ikonische Objekte, die als Zwischenergebnisse bei der 2D-Datacode-Suche oder deren Auswertung anfallen.
Handle des zu verwendenden 2D-Datacode-Modells.
Handle des 2D-Datacode-Kandidaten. Entweder ein Integer (üblicherweise das ResultHandle von find_data_code_2d) oder ein String, der eine Gruppe von Kandidaten beschreibt.
Defaultwert: 'all_candidates'
Wertevorschläge: 0, 1, 2, 'all_candidates', 'all_results', 'all_undecoded', 'all_aborted'
Name des ikonischen Objekts, das abgefragt werden soll.
Defaultwert: 'candidate_xld'
Werteliste: 'candidate_xld', 'module_0_rois', 'module_1_rois', 'process_image', 'search_image'
* Example demonstrating how to access the iconic objects of the data code
* search.
* Create a model for reading Data matrix ECC 200 codes
create_data_code_2d_model ('Data Matrix ECC 200', [], [], DataCodeHandle)
set_data_code_2d_param (DataCodeHandle, 'default_parameters', 'maximum_recognition')
set_data_code_2d_param (DataCodeHandle, 'persistence', 1)
* Read an image
read_image (Image, 'datacode/ecc200/ecc200_disturbed_012')
* Read the symbol in the image
find_data_code_2d (Image, SymbolXLDs, DataCodeHandle, [], [], \
ResultHandles, DecodedDataStrings)
* Get the handles of all candidates that were detected as a symbol but
* could not be read
get_data_code_2d_results (DataCodeHandle, 'all_undecoded', 'handle', \
HandlesUndecoded)
* For every undecoded symbol, get the contour and the classified
* module regions
for I := 0 to |HandlesUndecoded| - 1 by 1
* Display image.
dev_display (Image)
dev_set_draw ('margin')
* Get the contour of the symbol.
dev_set_color ('blue')
get_data_code_2d_objects (SymbolXLD, DataCodeHandle, \
HandlesUndecoded[I], 'candidate_xld')
dev_display (SymbolXLD)
* Get the module regions of the foreground modules
dev_set_color ('green')
get_data_code_2d_objects (ModuleFG, DataCodeHandle, \
HandlesUndecoded[I], 'module_1_rois')
dev_display (ModuleFG)
* Get the module regions of the background modules
dev_set_color ('red')
get_data_code_2d_objects (ModuleBG, DataCodeHandle, \
HandlesUndecoded[I], 'module_0_rois')
dev_display (ModuleBG)
* Stop for inspecting the image.
stop ()
endfor
* Clear the model
clear_data_code_2d_model (DataCodeHandle)
get_data_code_2d_objects 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.
find_data_code_2d, query_data_code_2d_params
query_data_code_2d_params, get_data_code_2d_results, get_data_code_2d_param, set_data_code_2d_param
Data Code
| Operatoren |