get_bar_code_objectT_get_bar_code_objectGetBarCodeObjectGetBarCodeObjectget_bar_code_object (Operator)

Name

get_bar_code_objectT_get_bar_code_objectGetBarCodeObjectGetBarCodeObjectget_bar_code_object — Access iconic objects that were created during the search or decoding of bar code symbols.

Signature

get_bar_code_object( : BarCodeObjects : BarCodeHandle, CandidateHandle, ObjectName : )

Herror T_get_bar_code_object(Hobject* BarCodeObjects, const Htuple BarCodeHandle, const Htuple CandidateHandle, const Htuple ObjectName)

void GetBarCodeObject(HObject* BarCodeObjects, const HTuple& BarCodeHandle, const HTuple& CandidateHandle, const HTuple& ObjectName)

HObject HBarCode::GetBarCodeObject(const HTuple& CandidateHandle, const HString& ObjectName) const

HObject HBarCode::GetBarCodeObject(const HString& CandidateHandle, const HString& ObjectName) const

HObject HBarCode::GetBarCodeObject(const char* CandidateHandle, const char* ObjectName) const

HObject HBarCode::GetBarCodeObject(const wchar_t* CandidateHandle, const wchar_t* ObjectName) const   ( Windows only)

static void HOperatorSet.GetBarCodeObject(out HObject barCodeObjects, HTuple barCodeHandle, HTuple candidateHandle, HTuple objectName)

HObject HBarCode.GetBarCodeObject(HTuple candidateHandle, string objectName)

HObject HBarCode.GetBarCodeObject(string candidateHandle, string objectName)

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

Description

With the operator get_bar_code_objectget_bar_code_objectGetBarCodeObjectGetBarCodeObjectget_bar_code_object, iconic objects created during the last call of the operator find_bar_codefind_bar_codeFindBarCodeFindBarCodefind_bar_code can be accessed. Besides the name of the object (ObjectNameObjectNameObjectNameobjectNameobject_name), the bar code model (BarCodeHandleBarCodeHandleBarCodeHandlebarCodeHandlebar_code_handle) must be passed to get_bar_code_objectget_bar_code_objectGetBarCodeObjectGetBarCodeObjectget_bar_code_object. In addition, in CandidateHandleCandidateHandleCandidateHandlecandidateHandlecandidate_handle an index to a single decoded symbol or a single symbol candidate must be passed. Alternatively, CandidateHandleCandidateHandleCandidateHandlecandidateHandlecandidate_handle can be set to 'all'"all""all""all""all" and then all objects of the decoded symbols or symbol candidates are returned.

Depending on the option selected in ObjectNameObjectNameObjectNameobjectNameobject_name parameter the following objects are returned:

'symbol_regions'"symbol_regions""symbol_regions""symbol_regions""symbol_regions":

The regions of successfully decoded symbols are returned. When choosing 'all'"all""all""all""all" as CandidateHandleCandidateHandleCandidateHandlecandidateHandlecandidate_handle, the regions of all decoded symbols are retrieved. The order of the returned objects is the same as in find_bar_codefind_bar_codeFindBarCodeFindBarCodefind_bar_code.

'candidate_regions'"candidate_regions""candidate_regions""candidate_regions""candidate_regions":

The regions of potential bar codes are returned. If there is a total of n decoded symbols out of a total of m candidates then CandidateHandleCandidateHandleCandidateHandlecandidateHandlecandidate_handle can be chosen between 0 and (m-1). With CandidateHandleCandidateHandleCandidateHandlecandidateHandlecandidate_handle between 0 and (n-1) the original segmented region of the respective decoded symbol is retrieved. With CandidateHandleCandidateHandleCandidateHandlecandidateHandlecandidate_handle between n and (m-1) the region of the potential or undecodable symbol is returned. In addition, CandidateHandleCandidateHandleCandidateHandlecandidateHandlecandidate_handle can be set to 'all'"all""all""all""all" to retrieve all candidate regions at the same time.

'scanlines_all'"scanlines_all""scanlines_all""scanlines_all""scanlines_all", 'scanlines_valid'"scanlines_valid""scanlines_valid""scanlines_valid""scanlines_valid", 'scanlines_all_plain'"scanlines_all_plain""scanlines_all_plain""scanlines_all_plain""scanlines_all_plain", 'scanlines_valid_plain'"scanlines_valid_plain""scanlines_valid_plain""scanlines_valid_plain""scanlines_valid_plain", 'scanlines_merged_edges'"scanlines_merged_edges""scanlines_merged_edges""scanlines_merged_edges""scanlines_merged_edges":

XLD contours representing the particular detected bars in the scanlines applied on the candidate regions are returned. Note that the scanlines can be only be returned if the bar code was decoded by find_bar_codefind_bar_codeFindBarCodeFindBarCodefind_bar_code or decode_bar_code_rectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2decode_bar_code_rectangle2 in 'persistence'"persistence""persistence""persistence""persistence" mode (see set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamset_bar_code_param for further details).

'scanlines_all'"scanlines_all""scanlines_all""scanlines_all""scanlines_all" represents all scanlines that find_bar_codefind_bar_codeFindBarCodeFindBarCodefind_bar_code could potentially create in order to decode a bar code.

'scanlines_valid'"scanlines_valid""scanlines_valid""scanlines_valid""scanlines_valid" represents only those scanlines that could be successfully decoded. The number of scanlines that has to be valid can be adjusted with set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamset_bar_code_param with the parameter 'min_identical_scanlines'"min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines". There will be no 'scanlines_valid'"scanlines_valid""scanlines_valid""scanlines_valid""scanlines_valid" if the symbol was not decoded. For stacked bar codes (e.g., 'GS1 DataBar Stacked'"GS1 DataBar Stacked""GS1 DataBar Stacked""GS1 DataBar Stacked""GS1 DataBar Stacked" and 'GS1 DataBar Expanded Stacked'"GS1 DataBar Expanded Stacked""GS1 DataBar Expanded Stacked""GS1 DataBar Expanded Stacked""GS1 DataBar Expanded Stacked") this rule applies similarly, but on a per-symbol-row basis rather then per-symbol.

'scanlines_merged_edges'"scanlines_merged_edges""scanlines_merged_edges""scanlines_merged_edges""scanlines_merged_edges" shows the scanlines and edges which were used for the merged scanlines (see 'merge_scanlines'"merge_scanlines""merge_scanlines""merge_scanlines""merge_scanlines" in set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamset_bar_code_param).

get_bar_code_objectget_bar_code_objectGetBarCodeObjectGetBarCodeObjectget_bar_code_object returns each scanline as separate XLD contour. Please note that the XLD contours returned by 'scanlines_all'"scanlines_all""scanlines_all""scanlines_all""scanlines_all", 'scanlines_valid'"scanlines_valid""scanlines_valid""scanlines_valid""scanlines_valid" and 'scanlines_merged_edges'"scanlines_merged_edges""scanlines_merged_edges""scanlines_merged_edges""scanlines_merged_edges" are meant for visualization purposes and hence consist of many XLD points. Double lines are used between edges that the bar code reader recognized as bar, whereas single lines are used for white spaces. Additional information about each scanline can be obtained with get_bar_code_resultget_bar_code_resultGetBarCodeResultGetBarCodeResultget_bar_code_result with the parameter 'status'"status""status""status""status".

The '_plain' variants 'scanlines_all_plain'"scanlines_all_plain""scanlines_all_plain""scanlines_all_plain""scanlines_all_plain" and 'scanlines_valid_plain'"scanlines_valid_plain""scanlines_valid_plain""scanlines_valid_plain""scanlines_valid_plain" return the described scanlines in a plain format. Every edge found is returned as a point of an XLD contour. For every scanline a new XLD contour is created. Scanlines for which no edges could be found are omitted.

Execution Information

Parameters

BarCodeObjectsBarCodeObjectsBarCodeObjectsbarCodeObjectsbar_code_objects (output_object)  object(-array) objectHObjectHObjectHObjectHobject *

Objects that are created as intermediate results during the detection or evaluation of bar codes.

BarCodeHandleBarCodeHandleBarCodeHandlebarCodeHandlebar_code_handle (input_control)  barcode HBarCode, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle of the bar code model.

CandidateHandleCandidateHandleCandidateHandlecandidateHandlecandidate_handle (input_control)  integer HTupleUnion[int, str]HTupleHtuple (string / integer) (string / int / long) (HString / Hlong) (char* / Hlong)

Indicating the bar code results respectively candidates for which the data is required.

Default: 'all' "all" "all" "all" "all"

Suggested values: 0, 1, 2, 'all'"all""all""all""all"

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

Name of the iconic object to return.

Default: 'candidate_regions' "candidate_regions" "candidate_regions" "candidate_regions" "candidate_regions"

List of values: 'candidate_regions'"candidate_regions""candidate_regions""candidate_regions""candidate_regions", 'scanlines_all'"scanlines_all""scanlines_all""scanlines_all""scanlines_all", 'scanlines_all_plain'"scanlines_all_plain""scanlines_all_plain""scanlines_all_plain""scanlines_all_plain", 'scanlines_merged_edges'"scanlines_merged_edges""scanlines_merged_edges""scanlines_merged_edges""scanlines_merged_edges", 'scanlines_valid'"scanlines_valid""scanlines_valid""scanlines_valid""scanlines_valid", 'scanlines_valid_plain'"scanlines_valid_plain""scanlines_valid_plain""scanlines_valid_plain""scanlines_valid_plain", 'symbol_regions'"symbol_regions""symbol_regions""symbol_regions""symbol_regions"

Result

The operator get_bar_code_objectget_bar_code_objectGetBarCodeObjectGetBarCodeObjectget_bar_code_object returns the value 2 ( H_MSG_TRUE) if the given parameters are correct and the requested objects are available for the last symbol search. Otherwise, an exception will be raised.

Possible Predecessors

find_bar_codefind_bar_codeFindBarCodeFindBarCodefind_bar_code

See also

get_bar_code_resultget_bar_code_resultGetBarCodeResultGetBarCodeResultget_bar_code_result

Module

Bar Code