get_data_code_2d_objectsT_get_data_code_2d_objectsGetDataCode2dObjectsGetDataCode2dObjectsget_data_code_2d_objects (Operator)

Name

get_data_code_2d_objectsT_get_data_code_2d_objectsGetDataCode2dObjectsGetDataCode2dObjectsget_data_code_2d_objects — 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)

def get_data_code_2d_objects(data_code_handle: HHandle, candidate_handle: Union[int, str], object_name: str) -> HObject

Beschreibung

Der Operator get_data_code_2d_objectsget_data_code_2d_objectsGetDataCode2dObjectsGetDataCode2dObjectsGetDataCode2dObjectsget_data_code_2d_objects erlaubt den Zugriff auf ikonische Objekte, die beim letzten Aufruf von find_data_code_2dfind_data_code_2dFindDataCode2dFindDataCode2dFindDataCode2dfind_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 (ObjectNameObjectNameObjectNameObjectNameobjectNameobject_name) auch das zugrundeliegende 2D-Datacode-Modell (DataCodeHandleDataCodeHandleDataCodeHandleDataCodeHandledataCodeHandledata_code_handle) angegeben werden. Außerdem muss in CandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandlecandidate_handle ein Handle auf einen Symbolkandidaten, wie ihn find_data_code_2dfind_data_code_2dFindDataCode2dFindDataCode2dFindDataCode2dfind_data_code_2d oder get_data_code_2d_resultsget_data_code_2d_resultsGetDataCode2dResultsGetDataCode2dResultsGetDataCode2dResultsget_data_code_2d_results liefern, oder ein String, der eine Gruppe von Kandidaten beschreibt (vgl. get_data_code_2d_resultsget_data_code_2d_resultsGetDataCode2dResultsGetDataCode2dResultsGetDataCode2dResultsget_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'"discard_undecoded_candidates""discard_undecoded_candidates""discard_undecoded_candidates""discard_undecoded_candidates""discard_undecoded_candidates" in set_data_code_2d_paramset_data_code_2d_paramSetDataCode2dParamSetDataCode2dParamSetDataCode2dParamset_data_code_2d_param auf 'yes'"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_paramSetDataCode2dParamSetDataCode2dParamSetDataCode2dParamset_data_code_2d_param). Das Setzen der Persistenz muss vor dem Aufruf von find_data_code_2dfind_data_code_2dFindDataCode2dFindDataCode2dFindDataCode2dfind_data_code_2d entweder beim Anlegen des Modells mit create_data_code_2d_modelcreate_data_code_2d_modelCreateDataCode2dModelCreateDataCode2dModelCreateDataCode2dModelcreate_data_code_2d_model oder mit Hilfe von set_data_code_2d_paramset_data_code_2d_paramSetDataCode2dParamSetDataCode2dParamSetDataCode2dParamset_data_code_2d_param erfolgen.

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

Regionen der Module

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 CandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandlecandidate_handle 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""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""search_image":

Pyramidenbild, in dem der Kandidat gefunden wurde.

'process_image'"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

DataCodeObjectsDataCodeObjectsDataCodeObjectsDataCodeObjectsdataCodeObjectsdata_code_objects (output_object)  object(-array) objectHObjectHObjectHObjectHobject *

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

DataCodeHandleDataCodeHandleDataCodeHandleDataCodeHandledataCodeHandledata_code_handle (input_control)  datacode_2d HDataCode2D, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle des zu verwendenden 2D-Datacode-Modells.

CandidateHandleCandidateHandleCandidateHandleCandidateHandlecandidateHandlecandidate_handle (input_control)  integer HTupleUnion[int, str]HTupleHtuple (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_2dFindDataCode2dFindDataCode2dFindDataCode2dfind_data_code_2d) oder ein String, der eine Gruppe von Kandidaten beschreibt.

Defaultwert: 'all_candidates' "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_candidates", 'all_results'"all_results""all_results""all_results""all_results""all_results", 'all_undecoded'"all_undecoded""all_undecoded""all_undecoded""all_undecoded""all_undecoded", 'all_aborted'"all_aborted""all_aborted""all_aborted""all_aborted""all_aborted"

ObjectNameObjectNameObjectNameObjectNameobjectNameobject_name (input_control)  string HTuplestrHTupleHtuple (string) (string) (HString) (char*)

Name des ikonischen Objekts, das abgefragt werden soll.

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

Werteliste: 'candidate_xld'"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_0_rois", 'module_1_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""process_image", 'search_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_objectsGetDataCode2dObjectsGetDataCode2dObjectsGetDataCode2dObjectsget_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.

Vorgänger

find_data_code_2dfind_data_code_2dFindDataCode2dFindDataCode2dFindDataCode2dfind_data_code_2d, query_data_code_2d_paramsquery_data_code_2d_paramsQueryDataCode2dParamsQueryDataCode2dParamsQueryDataCode2dParamsquery_data_code_2d_params

Nachfolger

get_data_code_2d_resultsget_data_code_2d_resultsGetDataCode2dResultsGetDataCode2dResultsGetDataCode2dResultsget_data_code_2d_results

Siehe auch

query_data_code_2d_paramsquery_data_code_2d_paramsQueryDataCode2dParamsQueryDataCode2dParamsQueryDataCode2dParamsquery_data_code_2d_params, get_data_code_2d_resultsget_data_code_2d_resultsGetDataCode2dResultsGetDataCode2dResultsGetDataCode2dResultsget_data_code_2d_results, get_data_code_2d_paramget_data_code_2d_paramGetDataCode2dParamGetDataCode2dParamGetDataCode2dParamget_data_code_2d_param, set_data_code_2d_paramset_data_code_2d_paramSetDataCode2dParamSetDataCode2dParamSetDataCode2dParamset_data_code_2d_param

Modul

Data Code