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.
DataCodeObjects
(output_object) object(-array) →
object
Ikonische Objekte, die als Zwischenergebnisse bei der 2D-Datacode-Suche oder deren Auswertung anfallen.
DataCodeHandle
(input_control) datacode_2d →
(handle)
Handle des zu verwendenden 2D-Datacode-Modells.
CandidateHandle
(input_control) integer →
(integer / string)
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'
ObjectName
(input_control) string →
(string)
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