decode_bar_code_rectangle2T_decode_bar_code_rectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2decode_bar_code_rectangle2解码条形码矩形2(算子)

名称

decode_bar_code_rectangle2T_decode_bar_code_rectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2decode_bar_code_rectangle2 — 解码矩形内的条形码符号。

签名

decode_bar_code_rectangle2(Image : : BarCodeHandle, CodeType, Row, Column, Phi, Length1, Length2 : 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)

void DecodeBarCodeRectangle2(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)

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

HString HBarCode::DecodeBarCodeRectangle2(const HImage& Image, const HString& CodeType, double Row, double Column, double Phi, double Length1, double Length2) const

HString HBarCode::DecodeBarCodeRectangle2(const HImage& Image, const char* CodeType, double Row, double Column, double Phi, double Length1, double Length2) const

HString HBarCode::DecodeBarCodeRectangle2(const HImage& Image, const wchar_t* CodeType, double Row, double Column, double Phi, double Length1, double Length2) const   ( Windows only)

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

HString HImage::DecodeBarCodeRectangle2(const HBarCode& BarCodeHandle, const HString& CodeType, double Row, double Column, double Phi, double Length1, double Length2) const

HString HImage::DecodeBarCodeRectangle2(const HBarCode& BarCodeHandle, const char* CodeType, double Row, double Column, double Phi, double Length1, double Length2) const

HString HImage::DecodeBarCodeRectangle2(const HBarCode& BarCodeHandle, const wchar_t* CodeType, double Row, double Column, double Phi, double Length1, double Length2) const   ( Windows only)

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)

def decode_bar_code_rectangle2(image: HObject, bar_code_handle: HHandle, code_type: MaybeSequence[str], row: MaybeSequence[Union[int, float]], column: MaybeSequence[Union[int, float]], phi: MaybeSequence[Union[int, float]], length_1: MaybeSequence[Union[int, float]], length_2: MaybeSequence[Union[int, float]]) -> Sequence[str]

def decode_bar_code_rectangle2_s(image: HObject, bar_code_handle: HHandle, code_type: MaybeSequence[str], row: MaybeSequence[Union[int, float]], column: MaybeSequence[Union[int, float]], phi: MaybeSequence[Union[int, float]], length_1: MaybeSequence[Union[int, float]], length_2: MaybeSequence[Union[int, float]]) -> str

描述

算子 decode_bar_code_rectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2decode_bar_code_rectangle2 使用由 BarCodeHandleBarCodeHandleBarCodeHandleBarCodeHandlebarCodeHandlebar_code_handle 指定的条形码模型,对图像 ImageImageImageImageimageimage 中的指定位置进行条形码解码。BarCodeHandleBarCodeHandleBarCodeHandleBarCodeHandlebarCodeHandlebar_code_handle 必须通过 create_bar_code_modelcreate_bar_code_modelCreateBarCodeModelCreateBarCodeModelCreateBarCodeModelcreate_bar_code_model 创建,其参数可通过 set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamSetBarCodeParamset_bar_code_param 进行设置。条形码的位置以任意方向的矩形区域表示。与 find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCodefind_bar_code 不同,后者在解码前需要耗时地搜索候选区域,而 decode_bar_code_rectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2decode_bar_code_rectangle2 会直接扫描给定的区域以查找条形码。该矩形区域由中心坐标的 RowRowRowRowrowrowColumnColumnColumnColumncolumncolumn 参数、方向参数 PhiPhiPhiPhiphiphi 以及半边长参数 Length1Length1Length1Length1length1length_1Length2Length2Length2Length2length2length_2 定义(参见 gen_rectangle2gen_rectangle2GenRectangle2GenRectangle2GenRectangle2gen_rectangle2)。角度 PhiPhiPhiPhiphiphi 还决定了读取方向,定义为条形码读取方向与水平图像轴之间的夹角。该角度在逆时针方向上为正值,并像 gen_rectangle2gen_rectangle2GenRectangle2GenRectangle2GenRectangle2gen_rectangle2 一样以弧度为单位。请注意,该角度单位与 get_bar_code_resultget_bar_code_resultGetBarCodeResultGetBarCodeResultGetBarCodeResultget_bar_code_resultset_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamSetBarCodeParamset_bar_code_param 中的惯例不同,后者使用度为单位。 PhiPhiPhiPhiphiphi 的取值范围为 [ ]。读取方向与条码的条纹垂直。读取方向为 的条码也会被返回。可以通过提供包含 RowRowRowRowrowrowColumnColumnColumnColumncolumncolumnPhiPhiPhiPhiphiphiLength1Length1Length1Length1length1length_1Length2Length2Length2Length2length2length_2 的元组来指定多个用于解码的区域。

矩形应完全覆盖条形码及其静区。如果区域过大,但其中不存在干扰图案,且高度 Length2Length2Length2Length2length2length_2)足够小,以至于扫描线能够以足够高的密度排列,则该区域仍可被解码。在读取方向(Length1Length1Length1Length1length1length_1)上过短的矩形无法被解码。

若条形码的位置已知,可使用 decode_bar_code_rectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2decode_bar_code_rectangle2。例如,find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCodefind_bar_codeget_bar_code_objectget_bar_code_objectGetBarCodeObjectGetBarCodeObjectGetBarCodeObjectget_bar_code_object 找到的候选区域可针对不同条形码类型重复使用(参见下文示例)。

CodeTypeCodeTypeCodeTypeCodeTypecodeTypecode_type 参数可指定多种条形码类型。详情请参阅 find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCodefind_bar_code 的“自动识别”一节。

实际解码的其他方面将在 find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCodefind_bar_code 算子中进行说明。

执行信息

此算子支持取消超时和中断。

此算子修改后续输入参数的状态:

在执行此算子时,若该参数值需在多个线程间使用,则必须对其访问进行同步。

参数

ImageImageImageImageimageimage (输入对象)  singlechannelimage objectHImageHObjectHImageHobject (byte)

输入图像。

BarCodeHandleBarCodeHandleBarCodeHandleBarCodeHandlebarCodeHandlebar_code_handle (输入控制,状态被修改)  barcode HBarCode, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

条形码模型的句柄。

CodeTypeCodeTypeCodeTypeCodeTypecodeTypecode_type (输入控制)  string(-array) HTupleMaybeSequence[str]HTupleHtuple (string) (string) (HString) (char*)

待搜索条形码的类型。

默认值: 'EAN-13' "EAN-13" "EAN-13" "EAN-13" "EAN-13" "EAN-13"

值列表: '2/5 Industrial'"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""2/5 Interleaved", 'Codabar'"Codabar""Codabar""Codabar""Codabar""Codabar", 'Code 128'"Code 128""Code 128""Code 128""Code 128""Code 128", 'Code 39'"Code 39""Code 39""Code 39""Code 39""Code 39", 'Code 93'"Code 93""Code 93""Code 93""Code 93""Code 93", '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 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-13 Add-On 5", 'EAN-13'"EAN-13""EAN-13""EAN-13""EAN-13""EAN-13", '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 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""EAN-8 Add-On 5", 'EAN-8'"EAN-8""EAN-8""EAN-8""EAN-8""EAN-8", 'GS1 DataBar Expanded Stacked'"GS1 DataBar Expanded Stacked""GS1 DataBar Expanded Stacked""GS1 DataBar Expanded Stacked""GS1 DataBar Expanded Stacked""GS1 DataBar Expanded Stacked", 'GS1 DataBar Expanded'"GS1 DataBar Expanded""GS1 DataBar Expanded""GS1 DataBar Expanded""GS1 DataBar Expanded""GS1 DataBar Expanded", 'GS1 DataBar Limited'"GS1 DataBar Limited""GS1 DataBar Limited""GS1 DataBar Limited""GS1 DataBar Limited""GS1 DataBar Limited", 'GS1 DataBar Omnidir'"GS1 DataBar Omnidir""GS1 DataBar Omnidir""GS1 DataBar Omnidir""GS1 DataBar Omnidir""GS1 DataBar Omnidir", 'GS1 DataBar Stacked Omnidir'"GS1 DataBar Stacked Omnidir""GS1 DataBar Stacked Omnidir""GS1 DataBar Stacked Omnidir""GS1 DataBar Stacked Omnidir""GS1 DataBar Stacked Omnidir", 'GS1 DataBar Stacked'"GS1 DataBar Stacked""GS1 DataBar Stacked""GS1 DataBar Stacked""GS1 DataBar Stacked""GS1 DataBar Stacked", 'GS1 DataBar Truncated'"GS1 DataBar Truncated""GS1 DataBar Truncated""GS1 DataBar Truncated""GS1 DataBar Truncated""GS1 DataBar Truncated", 'GS1-128'"GS1-128""GS1-128""GS1-128""GS1-128""GS1-128", 'MSI'"MSI""MSI""MSI""MSI""MSI", 'PharmaCode'"PharmaCode""PharmaCode""PharmaCode""PharmaCode""PharmaCode", '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 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-A Add-On 5", 'UPC-A'"UPC-A""UPC-A""UPC-A""UPC-A""UPC-A", '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 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""UPC-E Add-On 5", 'UPC-E'"UPC-E""UPC-E""UPC-E""UPC-E""UPC-E", 'auto'"auto""auto""auto""auto""auto"

RowRowRowRowrowrow (输入控制)  rectangle2.center.y(-array) HTupleMaybeSequence[Union[int, float]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

中心列索引。

默认值: 50.0

ColumnColumnColumnColumncolumncolumn (输入控制)  rectangle2.center.x(-array) HTupleMaybeSequence[Union[int, float]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

中心列索引。

默认值: 100.0

PhiPhiPhiPhiphiphi (输入控制)  rectangle2.angle.rad(-array) HTupleMaybeSequence[Union[int, float]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

矩形的方向(以弧度为单位)。

默认值: 0.0

建议值: 0.0, 0.785398, 1.570796, 3.1415926

Length1Length1Length1Length1length1length_1 (输入控制)  rectangle2.hwidth(-array) HTupleMaybeSequence[Union[int, float]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

沿条形码读取方向的矩形长度的一半。

默认值: 200.0

Length2Length2Length2Length2length2length_2 (输入控制)  rectangle2.hheight(-array) HTupleMaybeSequence[Union[int, float]]HTupleHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)

垂直于条形码读取方向的矩形长度的一半。

默认值: 100.0

DecodedDataStringsDecodedDataStringsDecodedDataStringsDecodedDataStringsdecodedDataStringsdecoded_data_strings (输出控制)  string(-array) HTupleSequence[str]HTupleHtuple (string) (string) (HString) (char*)

所有成功解码的条形码的数据字符串。

示例(HDevelop)

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

结果

算子 decode_bar_code_rectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2decode_bar_code_rectangle2 在给定的参数正确时返回值 2 (H_MSG_TRUE)。否则,将抛出异常。

可能的前趋

create_bar_code_modelcreate_bar_code_modelCreateBarCodeModelCreateBarCodeModelCreateBarCodeModelcreate_bar_code_model, set_bar_code_paramset_bar_code_paramSetBarCodeParamSetBarCodeParamSetBarCodeParamset_bar_code_param, smallest_rectangle2smallest_rectangle2SmallestRectangle2SmallestRectangle2SmallestRectangle2smallest_rectangle2

可能的后继

get_bar_code_resultget_bar_code_resultGetBarCodeResultGetBarCodeResultGetBarCodeResultget_bar_code_result, get_bar_code_objectget_bar_code_objectGetBarCodeObjectGetBarCodeObjectGetBarCodeObjectget_bar_code_object, clear_bar_code_modelclear_bar_code_modelClearBarCodeModelClearBarCodeModelClearBarCodeModelclear_bar_code_model

替代

find_bar_codefind_bar_codeFindBarCodeFindBarCodeFindBarCodefind_bar_code

另见

gen_rectangle2gen_rectangle2GenRectangle2GenRectangle2GenRectangle2gen_rectangle2

模块

条形码