get_data_code_2d_objectsT_get_data_code_2d_objectsGetDataCode2dObjectsGetDataCode2dObjects (Operator)

Name

get_data_code_2d_objectsT_get_data_code_2d_objectsGetDataCode2dObjectsGetDataCode2dObjects — Zugriff auf ikonische Objekte, die bei der Suche nach einem 2D-Datacode angelegt werden bzw. diesen beschreiben.

Signatur

get_data_code_2d_objects( : DataCodeObjects : DataCodeHandle, CandidateHandle, ObjectName : )

Herror T_get_data_code_2d_objects(Hobject* DataCodeObjects, const Htuple DataCodeHandle, const Htuple CandidateHandle, const Htuple ObjectName)

void GetDataCode2dObjects(HObject* DataCodeObjects, const HTuple& DataCodeHandle, const HTuple& CandidateHandle, const HTuple& ObjectName)

HObject HDataCode2D::GetDataCode2dObjects(const HTuple& CandidateHandle, const HString& ObjectName) const

HObject HDataCode2D::GetDataCode2dObjects(Hlong CandidateHandle, const HString& ObjectName) const

HObject HDataCode2D::GetDataCode2dObjects(Hlong CandidateHandle, const char* ObjectName) const

HObject HDataCode2D::GetDataCode2dObjects(Hlong CandidateHandle, const wchar_t* ObjectName) const   (Nur Windows)

static void HOperatorSet.GetDataCode2dObjects(out HObject dataCodeObjects, HTuple dataCodeHandle, HTuple candidateHandle, HTuple objectName)

HObject HDataCode2D.GetDataCode2dObjects(HTuple candidateHandle, string objectName)

HObject HDataCode2D.GetDataCode2dObjects(int candidateHandle, string objectName)

Beschreibung

Der Operator get_data_code_2d_objectsget_data_code_2d_objectsGetDataCode2dObjectsGetDataCode2dObjectsGetDataCode2dObjects erlaubt den Zugriff auf ikonische Objekte, die beim letzten Aufruf von find_data_code_2dfind_data_code_2dFindDataCode2dFindDataCode2dFindDataCode2d 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 (ObjectNameObjectNameObjectNameObjectNameobjectName) auch das zugrundeliegende 2D-Datacode-Modell (DataCodeHandleDataCodeHandleDataCodeHandleDataCodeHandledataCodeHandle) angegeben werden. Außerdem muss in CandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandle ein Handle auf einen Symbolkandidaten, wie ihn find_data_code_2dfind_data_code_2dFindDataCode2dFindDataCode2dFindDataCode2d oder get_data_code_2d_resultsget_data_code_2d_resultsGetDataCode2dResultsGetDataCode2dResultsGetDataCode2dResults liefern, oder ein String, der eine Gruppe von Kandidaten beschreibt (vgl. get_data_code_2d_resultsget_data_code_2d_resultsGetDataCode2dResultsGetDataCode2dResultsGetDataCode2dResults) ü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'"discard_undecoded_candidates""discard_undecoded_candidates""discard_undecoded_candidates""discard_undecoded_candidates" in set_data_code_2d_paramset_data_code_2d_paramSetDataCode2dParamSetDataCode2dParamSetDataCode2dParam auf 'yes'"yes""yes""yes""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_paramset_data_code_2d_paramSetDataCode2dParamSetDataCode2dParamSetDataCode2dParam). Das Setzen der Persistenz muss vor dem Aufruf von find_data_code_2dfind_data_code_2dFindDataCode2dFindDataCode2dFindDataCode2d entweder beim Anlegen des Modells mit create_data_code_2d_modelcreate_data_code_2d_modelCreateDataCode2dModelCreateDataCode2dModelCreateDataCode2dModel oder mit Hilfe von set_data_code_2d_paramset_data_code_2d_paramSetDataCode2dParamSetDataCode2dParamSetDataCode2dParam erfolgen.

Im einzelnen wird der Zugriff auf die folgenden Objekte unterstützt:

Regionen der Module

'module_1_rois'"module_1_rois""module_1_rois""module_1_rois""module_1_rois":

Alle Module, die als Vordergrund interpretiert wurden (Modulbit ist gesetzt).

'module_0_rois'"module_0_rois""module_0_rois""module_0_rois""module_0_rois":

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 CandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandle 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

'candidate_xld'"candidate_xld""candidate_xld""candidate_xld""candidate_xld":

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

'search_image'"search_image""search_image""search_image""search_image":

Pyramidenbild, in dem der Kandidat gefunden wurde.

'process_image'"process_image""process_image""process_image""process_image":

Pyramidenbild, in dem die weitere Bearbeitung des Kandidaten erfolgte.

Die Persistenzeinstellung spielt bei diesen Bildern ebenfalls keine Rolle.

Ausführungsinformationen

Parameter

DataCodeObjectsDataCodeObjectsDataCodeObjectsDataCodeObjectsdataCodeObjects (output_object)  object(-array) objectHObjectHObjectHobject *

Ikonische Objekte, die als Zwischenergebnisse bei der 2D-Datacode-Suche oder deren Auswertung anfallen.

DataCodeHandleDataCodeHandleDataCodeHandleDataCodeHandledataCodeHandle (input_control)  datacode_2d HDataCode2D, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des zu verwendenden 2D-Datacode-Modells.

CandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandle (input_control)  integer HTupleHTupleHtuple (integer / string) (int / long / string) (Hlong / HString) (Hlong / char*)

Handle des 2D-Datacode-Kandidaten. Entweder ein Integer (üblicherweise das ResultHandle von find_data_code_2dfind_data_code_2dFindDataCode2dFindDataCode2dFindDataCode2d) oder ein String, der eine Gruppe von Kandidaten beschreibt.

Defaultwert: 'all_candidates' "all_candidates" "all_candidates" "all_candidates" "all_candidates"

Wertevorschläge: 0, 1, 2, 'all_candidates'"all_candidates""all_candidates""all_candidates""all_candidates", 'all_results'"all_results""all_results""all_results""all_results", 'all_undecoded'"all_undecoded""all_undecoded""all_undecoded""all_undecoded", 'all_aborted'"all_aborted""all_aborted""all_aborted""all_aborted"

ObjectNameObjectNameObjectNameObjectNameobjectName (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Name des ikonischen Objekts, das abgefragt werden soll.

Defaultwert: 'candidate_xld' "candidate_xld" "candidate_xld" "candidate_xld" "candidate_xld"

Werteliste: 'candidate_xld'"candidate_xld""candidate_xld""candidate_xld""candidate_xld", 'module_0_rois'"module_0_rois""module_0_rois""module_0_rois""module_0_rois", 'module_1_rois'"module_1_rois""module_1_rois""module_1_rois""module_1_rois", 'process_image'"process_image""process_image""process_image""process_image", 'search_image'"search_image""search_image""search_image""search_image"

Beispiel (HDevelop)

* 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)

Ergebnis

get_data_code_2d_objectsget_data_code_2d_objectsGetDataCode2dObjectsGetDataCode2dObjectsGetDataCode2dObjects 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.

Vorgänger

find_data_code_2dfind_data_code_2dFindDataCode2dFindDataCode2dFindDataCode2d, query_data_code_2d_paramsquery_data_code_2d_paramsQueryDataCode2dParamsQueryDataCode2dParamsQueryDataCode2dParams

Nachfolger

get_data_code_2d_resultsget_data_code_2d_resultsGetDataCode2dResultsGetDataCode2dResultsGetDataCode2dResults

Siehe auch

query_data_code_2d_paramsquery_data_code_2d_paramsQueryDataCode2dParamsQueryDataCode2dParamsQueryDataCode2dParams, get_data_code_2d_resultsget_data_code_2d_resultsGetDataCode2dResultsGetDataCode2dResultsGetDataCode2dResults, get_data_code_2d_paramget_data_code_2d_paramGetDataCode2dParamGetDataCode2dParamGetDataCode2dParam, set_data_code_2d_paramset_data_code_2d_paramSetDataCode2dParamSetDataCode2dParamSetDataCode2dParam

Modul

Data Code