HALCON Reference Manual 10.0.2
Name
decode_bar_code_rectangle2decode_bar_code_rectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2 — Decode bar code symbols within a rectangle.
Herror decode_bar_code_rectangle2(const Hobject Image, const Hlong BarCodeHandle, const char* CodeType, double Row, double Column, double Phi, double Length1, double Length2, char* DecodedDataStrings)
Herror T_decode_bar_code_rectangle2(const Hobject Image, const Htuple BarCodeHandle, const Htuple CodeType, const Htuple Row, const Htuple Column, const Htuple Phi, const Htuple Length1, const Htuple Length2, Htuple* DecodedDataStrings)
Herror decode_bar_code_rectangle2(Hobject Image, const HTuple& BarCodeHandle, const HTuple& CodeType, const HTuple& Row, const HTuple& Column, const HTuple& Phi, const HTuple& Length1, const HTuple& Length2, char* DecodedDataStrings)
Herror decode_bar_code_rectangle2(Hobject Image, const HTuple& BarCodeHandle, const HTuple& CodeType, const HTuple& Row, const HTuple& Column, const HTuple& Phi, const HTuple& Length1, const HTuple& Length2, HTuple* DecodedDataStrings)
HTuple HImage::DecodeBarCodeRectangle2(const HBarCode& BarCodeHandle, const HTuple& CodeType, const HTuple& Row, const HTuple& Column, const HTuple& Phi, const HTuple& Length1, const HTuple& Length2) const
HTuple HBarCode::DecodeBarCodeRectangle2(const HImage& Image, const HTuple& CodeType, const HTuple& Row, const HTuple& Column, const HTuple& Phi, const HTuple& Length1, const HTuple& Length2) const
void HOperatorSetX.DecodeBarCodeRectangle2(
[in] IHUntypedObjectX* Image, [in] VARIANT BarCodeHandle, [in] VARIANT CodeType, [in] VARIANT Row, [in] VARIANT Column, [in] VARIANT Phi, [in] VARIANT Length1, [in] VARIANT Length2, [out] VARIANT* DecodedDataStrings)
VARIANT HBarCodeX.DecodeBarCodeRectangle2(
[in] IHImageX* Image, [in] VARIANT CodeType, [in] VARIANT Row, [in] VARIANT Column, [in] VARIANT Phi, [in] VARIANT Length1, [in] VARIANT Length2)
VARIANT HImageX.DecodeBarCodeRectangle2(
[in] IHBarCodeX* BarCodeHandle, [in] VARIANT CodeType, [in] VARIANT Row, [in] VARIANT Column, [in] VARIANT Phi, [in] VARIANT Length1, [in] VARIANT Length2)
static void HOperatorSet.DecodeBarCodeRectangle2(HObject image, HTuple barCodeHandle, HTuple codeType, HTuple row, HTuple column, HTuple phi, HTuple length1, HTuple length2, out HTuple decodedDataStrings)
HTuple HBarCode.DecodeBarCodeRectangle2(HImage image, HTuple codeType, HTuple row, HTuple column, HTuple phi, HTuple length1, HTuple length2)
string HBarCode.DecodeBarCodeRectangle2(HImage image, string codeType, double row, double column, double phi, double length1, double length2)
HTuple HImage.DecodeBarCodeRectangle2(HBarCode barCodeHandle, HTuple codeType, HTuple row, HTuple column, HTuple phi, HTuple length1, HTuple length2)
string HImage.DecodeBarCodeRectangle2(HBarCode barCodeHandle, string codeType, double row, double column, double phi, double length1, double length2)
The operator decode_bar_code_rectangle2decode_bar_code_rectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2 uses the bar code
model specified by BarCodeHandleBarCodeHandleBarCodeHandleBarCodeHandlebarCodeHandle to decode a bar code at
a given position within the image ImageImageImageImageimage.
BarCodeHandleBarCodeHandleBarCodeHandleBarCodeHandlebarCodeHandle must be created with
create_bar_code_modelcreate_bar_code_modelcreate_bar_code_modelCreateBarCodeModelCreateBarCodeModel, its parameters can be set with
set_bar_code_paramset_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParam. The position of the bar code is given
as an arbitrarily oriented rectangle. Contrary to
find_bar_codefind_bar_codefind_bar_codeFindBarCodeFindBarCode, where the decoding is preceeded by a time
consuming search for candidate regions,
decode_bar_code_rectangle2decode_bar_code_rectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2 scans the provided region directly
for bar codes. The rectangular region is defined by the parameters
RowRowRowRowrow and ColumnColumnColumnColumncolumn for the center, PhiPhiPhiPhiphi for
the orientation and Length1Length1Length1Length1length1 and Length2Length2Length2Length2length2 for the
half edge lengths (see gen_rectangle2gen_rectangle2gen_rectangle2GenRectangle2GenRectangle2). The angle PhiPhiPhiPhiphi
also determines the reading direction and is defined as the angle
between the reading direction of the bar code and the horizontal
image axis. The angle is positive in counter clockwise direction and
is given in radians as in gen_rectangle2gen_rectangle2gen_rectangle2GenRectangle2GenRectangle2. Note that the angle
unit deviates from the conventions in get_bar_code_resultget_bar_code_resultget_bar_code_resultGetBarCodeResultGetBarCodeResult and
set_bar_code_paramset_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParam where angles are given in degrees.
PhiPhiPhiPhiphi can be in the range of
['-pi'"-pi""-pi""-pi""-pi"..'+pi'"+pi""+pi""+pi""+pi"].
The reading direction is perpendicular to the bars of the bar code.
Bar codes with a reading direction
PhiPhiPhiPhiphi + pi are also returned.
Multiple regions for decoding can be given by supplying tuples for
RowRowRowRowrow, ColumnColumnColumnColumncolumn, PhiPhiPhiPhiphi, Length1Length1Length1Length1length1 and
Length2Length2Length2Length2length2.
The rectangle should cover completely the bar code and the quiet zones.
Regions that are too big will be decoded, if there is no disturbing
pattern within these regions and the height (Length2Length2Length2Length2length2) is
small enough such that scanlines can be placed sufficiently dense.
Rectangles that are too short in reading direction (Length1Length1Length1Length1length1)
cannot be decoded.
decode_bar_code_rectangle2decode_bar_code_rectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2 can be used if the position of
the bar code is already known in advance. For example, the candidate
regions found by find_bar_codefind_bar_codefind_bar_codeFindBarCodeFindBarCode and get_bar_code_objectget_bar_code_objectget_bar_code_objectGetBarCodeObjectGetBarCodeObject
could be reused with a different code type (see the following example).
Multiple bar code types can be specified for CodeTypeCodeTypeCodeTypeCodeTypecodeType. See
section Autodiscrimination for find_bar_codefind_bar_codefind_bar_codeFindBarCodeFindBarCode.
Further aspects of the actual decoding are explained with the operator
find_bar_codefind_bar_codefind_bar_codeFindBarCodeFindBarCode.
A bar code model 'BarCodeHandle'"BarCodeHandle""BarCodeHandle""BarCodeHandle""BarCodeHandle" cannot be shared between two or more
user's threads. Different bar code models can be used independently and
safely in different threads.
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- Automatically parallelized on internal data level.
Handle of the bar code model.
Type of the searched bar code.
Default value:
'EAN-13'
"EAN-13"
"EAN-13"
"EAN-13"
"EAN-13"
List of values: '2/5 Industrial'"2/5 Industrial""2/5 Industrial""2/5 Industrial""2/5 Industrial", '2/5 Interleaved'"2/5 Interleaved""2/5 Interleaved""2/5 Interleaved""2/5 Interleaved", 'Codabar'"Codabar""Codabar""Codabar""Codabar", 'Code 39'"Code 39""Code 39""Code 39""Code 39", 'Code 93'"Code 93""Code 93""Code 93""Code 93", 'Code 128'"Code 128""Code 128""Code 128""Code 128", 'EAN-13'"EAN-13""EAN-13""EAN-13""EAN-13", 'EAN-13 Add-On 2'"EAN-13 Add-On 2""EAN-13 Add-On 2""EAN-13 Add-On 2""EAN-13 Add-On 2", 'EAN-13 Add-On 5'"EAN-13 Add-On 5""EAN-13 Add-On 5""EAN-13 Add-On 5""EAN-13 Add-On 5", 'EAN-8'"EAN-8""EAN-8""EAN-8""EAN-8", 'EAN-8 Add-On 2'"EAN-8 Add-On 2""EAN-8 Add-On 2""EAN-8 Add-On 2""EAN-8 Add-On 2", 'EAN-8 Add-On 5'"EAN-8 Add-On 5""EAN-8 Add-On 5""EAN-8 Add-On 5""EAN-8 Add-On 5", 'UPC-A'"UPC-A""UPC-A""UPC-A""UPC-A", 'UPC-A Add-On 2'"UPC-A Add-On 2""UPC-A Add-On 2""UPC-A Add-On 2""UPC-A Add-On 2", 'UPC-A Add-On 5'"UPC-A Add-On 5""UPC-A Add-On 5""UPC-A Add-On 5""UPC-A Add-On 5", 'UPC-E'"UPC-E""UPC-E""UPC-E""UPC-E", 'UPC-E Add-On 2'"UPC-E Add-On 2""UPC-E Add-On 2""UPC-E Add-On 2""UPC-E Add-On 2", 'UPC-E Add-On 5'"UPC-E Add-On 5""UPC-E Add-On 5""UPC-E Add-On 5""UPC-E Add-On 5", 'MSI'"MSI""MSI""MSI""MSI", 'PharmaCode'"PharmaCode""PharmaCode""PharmaCode""PharmaCode", 'RSS-14'"RSS-14""RSS-14""RSS-14""RSS-14", 'RSS-14 Truncated'"RSS-14 Truncated""RSS-14 Truncated""RSS-14 Truncated""RSS-14 Truncated", 'RSS-14 Stacked'"RSS-14 Stacked""RSS-14 Stacked""RSS-14 Stacked""RSS-14 Stacked", 'RSS-14 Stacked Omnidir'"RSS-14 Stacked Omnidir""RSS-14 Stacked Omnidir""RSS-14 Stacked Omnidir""RSS-14 Stacked Omnidir", 'RSS Limited'"RSS Limited""RSS Limited""RSS Limited""RSS Limited", 'RSS Expanded'"RSS Expanded""RSS Expanded""RSS Expanded""RSS Expanded", 'RSS Expanded Stacked'"RSS Expanded Stacked""RSS Expanded Stacked""RSS Expanded Stacked""RSS Expanded Stacked", 'auto'"auto""auto""auto""auto"
RowRowRowRowrow (input_control) rectangle2.center.y(-array) → HTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong)
Row index of the center.
Default value: 50.0
ColumnColumnColumnColumncolumn (input_control) rectangle2.center.x(-array) → HTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong)
Column index of the center.
Default value: 100.0
PhiPhiPhiPhiphi (input_control) rectangle2.angle.rad(-array) → HTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong)
Orientation of rectangle in radians.
Default value: 0.0
Suggested values: 0.0, 0.785398, 1.570796, 3.1415926
Half of the length of the rectangle along the reading
direction of the bar code.
Default value: 200.0
Half of the length of the rectangle perpendicular to
the reading direction of the bar code.
Default value: 100.0
Data strings of all successfully decoded bar codes.
read_image (Image, 'barcode/ean13/ean1301.png')
create_bar_code_model ([], [], BHandle)
find_bar_code (Image, SymReg, BHandle, '2/5 Industrial', Dec)
if (|Dec|=0)
* A 2/5 Industrial code wasn't found. Try decoding an EAN-13 code.
get_bar_code_object (CandReg, BHandle, 'all', 'candidate_regions')
smallest_rectangle2 (CandReg, R, C, Phi, L1, L2)
decode_bar_code_rectangle2 (Image, BHandle, 'EAN-13', R, C, Phi, \
L1, L2, Dec)
endif
clear_bar_code_model (BHandle)
The operator decode_bar_code_rectangle2decode_bar_code_rectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2 returns the value 2 (H_MSG_TRUE)
if the given parameters are correct.
Otherwise, an exception will be raised.
create_bar_code_modelcreate_bar_code_modelcreate_bar_code_modelCreateBarCodeModelCreateBarCodeModel,
set_bar_code_paramset_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParam,
smallest_rectangle2smallest_rectangle2smallest_rectangle2SmallestRectangle2SmallestRectangle2
get_bar_code_resultget_bar_code_resultget_bar_code_resultGetBarCodeResultGetBarCodeResult,
get_bar_code_objectget_bar_code_objectget_bar_code_objectGetBarCodeObjectGetBarCodeObject,
clear_bar_code_modelclear_bar_code_modelclear_bar_code_modelClearBarCodeModelClearBarCodeModel
find_bar_codefind_bar_codefind_bar_codeFindBarCodeFindBarCode
gen_rectangle2gen_rectangle2gen_rectangle2GenRectangle2GenRectangle2
Bar Code
| HALCON Reference Manual 10.0.2 |
Copyright © 1996-2011 MVTec Software GmbH |