Name
decode_bar_code_rectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2decode_bar_code_rectangle2DecodeBarCodeRectangle2DecodeBarCodeRectangle2 — Lesen von Barcode-Symbolen innerhalb eines Rechtecks.
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)
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 ['-pi'"-pi""-pi""-pi""-pi""-pi"..'+pi'"+pi""+pi""+pi""+pi""+pi"]
liegen. Die Leserichtung ist senkrecht zu den Kanten der einzelnen
Barcodestriche. Es werden auch Barcodes mit einer Leserichtung von
PhiPhiPhiPhiPhiphi + pi 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.
Ein Barcode-Modell BarCodeHandleBarCodeHandleBarCodeHandleBarCodeHandleBarCodeHandlebarCodeHandle kann nur von einem Thread aus
verwendet werden. Verschiedene Barcode-Modelle können dagegen in
unterschiedlichen Threads genutzt werden.
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Automatisch parallelisiert auf interner Datenebene.
Handle des zu verwendenden Barcode-Modells.
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
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
Hälfte der Seitenlänge des Rechtecks entlang der
Leserichtung des Barcodes
Defaultwert: 200.0
Hälfte der Seitenlänge des Rechtecks senkrecht zur
Leserichtung des Barcodes.
Defaultwert: 100.0
Die Datenstrings der erfolgreich dekodierten Barcodes.
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)
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.
create_bar_code_modelcreate_bar_code_modelCreateBarCodeModelcreate_bar_code_modelCreateBarCodeModelCreateBarCodeModel,
set_bar_code_paramset_bar_code_paramSetBarCodeParamset_bar_code_paramSetBarCodeParamSetBarCodeParam,
smallest_rectangle2smallest_rectangle2SmallestRectangle2smallest_rectangle2SmallestRectangle2SmallestRectangle2
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
find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode
gen_rectangle2gen_rectangle2GenRectangle2gen_rectangle2GenRectangle2GenRectangle2
Bar Code