KlassenKlassenKlassenKlassen | | | | Operatoren

decode_bar_code_rectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2 (Operator)

Name

decode_bar_code_rectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2 — Lesen von Barcode-Symbolen innerhalb eines Rechtecks.

Signatur

decode_bar_code_rectangle2(Image : : BarCodeHandle, CodeType, Row, Column, Phi, Length1, Length2 : DecodedDataStrings)

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

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

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)

Beschreibung

Der Operator decode_bar_code_rectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2 benutzt das durch BarCodeHandleBarCodeHandleBarCodeHandleBarCodeHandleBarCodeHandlebarCodeHandle angegebene Barcode-Modell um einen Barcode an einer vorgegebenen Position innerhalb des Bildes ImageImageImageImageImageimage zu dekodieren. BarCodeHandleBarCodeHandleBarCodeHandleBarCodeHandleBarCodeHandlebarCodeHandle muss mit create_bar_code_modelcreate_bar_code_modelCreateBarCodeModelcreate_bar_code_modelCreateBarCodeModelCreateBarCodeModel erstellt worden sein. Dessen Parameter können mit set_bar_code_paramset_bar_code_paramSetBarCodeParamset_bar_code_paramSetBarCodeParamSetBarCodeParam gesetzt werden. Die Position des Barcodes wird als beliebig orientiertes Rechteck übergeben. Im Gegensatz zu find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode, wo der Dekodierung eine zeitaufwändige Suche nach Kandidatenregionen vorangeht, durchsucht decode_bar_code_rectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2 die übergebene Region direkt nach Barcodes. Die rechteckige Region wird definiert mit den Parametern RowRowRowRowRowrow und ColumnColumnColumnColumnColumncolumn für den Schwerpunkt, PhiPhiPhiPhiPhiphi für die Orientierung und Length1Length1Length1Length1Length1length1 und Length2Length2Length2Length2Length2length2 für die halbe Länge der Rechteckseiten (vergleiche gen_rectangle2gen_rectangle2GenRectangle2gen_rectangle2GenRectangle2GenRectangle2). Der Winkel PhiPhiPhiPhiPhiphi legt auch die Leserichtung des Barcodes fest. Die Orientierung eines Barcodes ist der Winkel zwischen der Leserichtung des Barcodes und der horizontalen Bildachse. Der Winkel ist positiv bei Drehung nach links und wird wie bei gen_rectangle2gen_rectangle2GenRectangle2gen_rectangle2GenRectangle2GenRectangle2 in Bogenmaß angegeben. Dies ist entgegengesetzt zu den Operatoren get_bar_code_resultget_bar_code_resultGetBarCodeResultget_bar_code_resultGetBarCodeResultGetBarCodeResult und set_bar_code_paramset_bar_code_paramSetBarCodeParamset_bar_code_paramSetBarCodeParamSetBarCodeParam bei denen Winkelangaben in Grad angegeben werden. PhiPhiPhiPhiPhiphi kann im Wertebereich von [ ] liegen. Die Leserichtung ist senkrecht zu den Kanten der einzelnen Barcodestriche. Es werden auch Barcodes mit einer Leserichtung von zurückgegeben. Mehrere Regionen zur Dekodierung können als Tupel in RowRowRowRowRowrow, ColumnColumnColumnColumnColumncolumn, PhiPhiPhiPhiPhiphi, Length1Length1Length1Length1Length1length1 und Length2Length2Length2Length2Length2length2 übergeben werden.

Das Rechteck sollte den Barcode und die Ruhezonen vollständig überdecken. Zu groß gewählte Regionen werden dekodiert, falls in dieser Region keine störenden Muster auftauchen und die Höhe (Length2Length2Length2Length2Length2length2) klein genug ist, dass die Scanlinien genügend dicht gelegt werden können. Rechtecke, die in Leserichtung (Length1Length1Length1Length1Length1length1) zu kurz gewählt sind, können nicht dekodiert werden.

decode_bar_code_rectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2 kann dann verwendet werden, wenn die Position des Barcodes bereits im Voraus bekannt ist. Beispielsweise könnten durch find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode und get_bar_code_objectget_bar_code_objectGetBarCodeObjectget_bar_code_objectGetBarCodeObjectGetBarCodeObject bereits Kandidatenregionen für Barcodes vorliegen (siehe folgendes Beispiel).

Für den Parameter CodeTypeCodeTypeCodeTypeCodeTypeCodeTypecodeType können mehrere Barcode-Typen angegeben werden, vergleiche Abschnitt Autodiskriminierung für find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode.

Die weiteren Aspekte der tatsächlichen Dekodierung werden bei dem Operator find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode beschrieben.

Parallelisierung

Dieser Operator modifiziert den Zustand des folgenden Eingabeparameters:

Der Wert dieses Parameters darf nicht über mehrere Threads verwendet werden.

Parameter

ImageImageImageImageImageimage (input_object)  singlechannelimage objectHImageHImageHImageHImageXHobject (byte / uint2)

Eingabebild.

BarCodeHandleBarCodeHandleBarCodeHandleBarCodeHandleBarCodeHandlebarCodeHandle (input_control, Zustand wird modifiziert)  barcode HBarCode, HTupleHTupleHBarCode, HTupleHBarCodeX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong) (Hlong)

Handle des zu verwendenden Barcode-Modells.

CodeTypeCodeTypeCodeTypeCodeTypeCodeTypecodeType (input_control)  string(-array) HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Typ des zu findenden Barcodes.

Defaultwert: 'EAN-13' "EAN-13" "EAN-13" "EAN-13" "EAN-13" "EAN-13"

Werteliste: '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 (input_control)  rectangle2.center.y(-array) HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Zeilenindex des Schwerpunktes.

Defaultwert: 50.0

ColumnColumnColumnColumnColumncolumn (input_control)  rectangle2.center.x(-array) HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Spaltenindex des Schwerpunktes.

Defaultwert: 100.0

PhiPhiPhiPhiPhiphi (input_control)  rectangle2.angle.rad(-array) HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Orientierung des Rechtecks in Bogenmaß.

Defaultwert: 0.0

Wertevorschläge: 0.0, 0.785398, 1.570796, 3.1415926

Length1Length1Length1Length1Length1length1 (input_control)  rectangle2.hwidth(-array) HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Hälfte der Seitenlänge des Rechtecks entlang der Leserichtung des Barcodes

Defaultwert: 200.0

Length2Length2Length2Length2Length2length2 (input_control)  rectangle2.hheight(-array) HTupleHTupleHTupleVARIANTHtuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong) (double / Hlong) (double / Hlong)

Hälfte der Seitenlänge des Rechtecks senkrecht zur Leserichtung des Barcodes.

Defaultwert: 100.0

DecodedDataStringsDecodedDataStringsDecodedDataStringsDecodedDataStringsDecodedDataStringsdecodedDataStrings (output_control)  string(-array) HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Die Datenstrings der erfolgreich dekodierten Barcodes.

Beispiel (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
clear_bar_code_model (BHandle)

Ergebnis

decode_bar_code_rectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2 liefert den Wert 2 (H_MSG_TRUE), falls die übergebenen Parameter korrekt sind. Ansonsten wird eine Fehlerbehandlung durchgeführt.

Vorgänger

create_bar_code_modelcreate_bar_code_modelCreateBarCodeModelcreate_bar_code_modelCreateBarCodeModelCreateBarCodeModel, set_bar_code_paramset_bar_code_paramSetBarCodeParamset_bar_code_paramSetBarCodeParamSetBarCodeParam, smallest_rectangle2smallest_rectangle2SmallestRectangle2smallest_rectangle2SmallestRectangle2SmallestRectangle2

Nachfolger

get_bar_code_resultget_bar_code_resultGetBarCodeResultget_bar_code_resultGetBarCodeResultGetBarCodeResult, get_bar_code_objectget_bar_code_objectGetBarCodeObjectget_bar_code_objectGetBarCodeObjectGetBarCodeObject, clear_bar_code_modelclear_bar_code_modelClearBarCodeModelclear_bar_code_modelClearBarCodeModelClearBarCodeModel

Alternativen

find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode

Siehe auch

gen_rectangle2gen_rectangle2GenRectangle2gen_rectangle2GenRectangle2GenRectangle2

Modul

Bar Code


KlassenKlassenKlassenKlassen | | | | Operatoren