decode_bar_code_rectangle2 T_decode_bar_code_rectangle2 DecodeBarCodeRectangle2 DecodeBarCodeRectangle2 (Operator)
Name
decode_bar_code_rectangle2 T_decode_bar_code_rectangle2 DecodeBarCodeRectangle2 DecodeBarCodeRectangle2
— Lesen von Barcode-Symbolen innerhalb eines Rechtecks.
Signatur
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
(Nur Windows)
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
(Nur Windows)
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_rectangle2 decode_bar_code_rectangle2 DecodeBarCodeRectangle2 DecodeBarCodeRectangle2 DecodeBarCodeRectangle2
benutzt das durch
BarCodeHandle BarCodeHandle BarCodeHandle BarCodeHandle barCodeHandle
angegebene Barcode-Modell um einen Barcode an
einer vorgegebenen Position innerhalb des Bildes Image Image Image Image image
zu
dekodieren. BarCodeHandle BarCodeHandle BarCodeHandle BarCodeHandle barCodeHandle
muss mit create_bar_code_model create_bar_code_model CreateBarCodeModel CreateBarCodeModel CreateBarCodeModel
erstellt worden sein. Dessen Parameter können mit
set_bar_code_param set_bar_code_param SetBarCodeParam SetBarCodeParam SetBarCodeParam
gesetzt werden. Die Position des Barcodes
wird als beliebig orientiertes Rechteck übergeben. Im Gegensatz zu
find_bar_code find_bar_code FindBarCode FindBarCode FindBarCode
, wo der Dekodierung eine zeitaufwändige Suche
nach Kandidatenregionen vorangeht, durchsucht
decode_bar_code_rectangle2 decode_bar_code_rectangle2 DecodeBarCodeRectangle2 DecodeBarCodeRectangle2 DecodeBarCodeRectangle2
die übergebene Region direkt nach
Barcodes. Die rechteckige Region wird definiert mit den Parametern
Row Row Row Row row
und Column Column Column Column column
für den Schwerpunkt, Phi Phi Phi Phi phi
für die Orientierung und Length1 Length1 Length1 Length1 length1
und Length2 Length2 Length2 Length2 length2
für
die halbe Länge der Rechteckseiten (vergleiche gen_rectangle2 gen_rectangle2 GenRectangle2 GenRectangle2 GenRectangle2
).
Der Winkel Phi Phi Phi Phi phi
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_rectangle2 gen_rectangle2 GenRectangle2 GenRectangle2 GenRectangle2
in Bogenmaß
angegeben. Dies ist entgegengesetzt zu den Operatoren
get_bar_code_result get_bar_code_result GetBarCodeResult GetBarCodeResult GetBarCodeResult
und set_bar_code_param set_bar_code_param SetBarCodeParam SetBarCodeParam SetBarCodeParam
bei denen
Winkelangaben in Grad angegeben werden. Phi Phi Phi Phi phi
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 Row Row Row Row row
,
Column Column Column Column column
, Phi Phi Phi Phi phi
, Length1 Length1 Length1 Length1 length1
und Length2 Length2 Length2 Length2 length2
ü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
(Length2 Length2 Length2 Length2 length2
) klein genug ist, dass die Scanlinien genügend
dicht gelegt werden können. Rechtecke, die in Leserichtung
(Length1 Length1 Length1 Length1 length1
) zu kurz gewählt sind, können nicht dekodiert werden.
decode_bar_code_rectangle2 decode_bar_code_rectangle2 DecodeBarCodeRectangle2 DecodeBarCodeRectangle2 DecodeBarCodeRectangle2
kann dann verwendet werden, wenn
die Position des Barcodes bereits im Voraus bekannt ist. Beispielsweise
könnten durch find_bar_code find_bar_code FindBarCode FindBarCode FindBarCode
und get_bar_code_object get_bar_code_object GetBarCodeObject GetBarCodeObject GetBarCodeObject
bereits Kandidatenregionen für Barcodes vorliegen (siehe folgendes
Beispiel).
Für den Parameter CodeType CodeType CodeType CodeType codeType
können mehrere Barcode-Typen angegeben
werden, vergleiche Abschnitt Autodiskriminierung für find_bar_code find_bar_code FindBarCode FindBarCode FindBarCode
.
Die weiteren Aspekte der tatsächlichen Dekodierung werden bei dem
Operator find_bar_code find_bar_code FindBarCode FindBarCode FindBarCode
beschrieben.
Ausführungsinformationen
Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
Automatisch parallelisiert auf interner Datenebene.
Dieser Operator modifiziert den Zustand des folgenden Eingabeparameters:
Während der Ausführung dieses Operators muss der Zugriff auf den Wert dieses Parameters synchronisiert werden, wenn er über mehrere Threads hinweg verwendet wird.
Parameter
Image Image Image Image image
(input_object) singlechannelimage →
object HImage HImage Hobject (byte / uint2)
Eingabebild.
BarCodeHandle BarCodeHandle BarCodeHandle BarCodeHandle barCodeHandle
(input_control, Zustand wird modifiziert) barcode →
HBarCode , HTuple HTuple Htuple (handle) (IntPtr ) (HHandle ) (handle )
Handle des zu verwendenden Barcode-Modells.
CodeType CodeType CodeType CodeType codeType
(input_control) string(-array) →
HTuple HTuple Htuple (string) (string ) (HString ) (char* )
Typ des zu findenden Barcodes.
Defaultwert:
'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 Interleaved' "2/5 Interleaved" "2/5 Interleaved" "2/5 Interleaved" "2/5 Interleaved" , 'Codabar' "Codabar" "Codabar" "Codabar" "Codabar" , 'Code 128' "Code 128" "Code 128" "Code 128" "Code 128" , 'Code 39' "Code 39" "Code 39" "Code 39" "Code 39" , '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 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-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' "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' "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 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' "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-128' "GS1-128" "GS1-128" "GS1-128" "GS1-128" , 'MSI' "MSI" "MSI" "MSI" "MSI" , '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 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-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' "UPC-E" "UPC-E" "UPC-E" "UPC-E" , 'auto' "auto" "auto" "auto" "auto"
Row Row Row Row row
(input_control) rectangle2.center.y(-array) →
HTuple HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Zeilenindex des Schwerpunktes.
Defaultwert: 50.0
Column Column Column Column column
(input_control) rectangle2.center.x(-array) →
HTuple HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Spaltenindex des Schwerpunktes.
Defaultwert: 100.0
Phi Phi Phi Phi phi
(input_control) rectangle2.angle.rad(-array) →
HTuple HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Orientierung des Rechtecks in Bogenmaß.
Defaultwert: 0.0
Wertevorschläge: 0.0, 0.785398, 1.570796, 3.1415926
Length1 Length1 Length1 Length1 length1
(input_control) rectangle2.hwidth(-array) →
HTuple HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Hälfte der Seitenlänge des Rechtecks entlang der
Leserichtung des Barcodes
Defaultwert: 200.0
Length2 Length2 Length2 Length2 length2
(input_control) rectangle2.hheight(-array) →
HTuple HTuple Htuple (real / integer) (double / int / long) (double / Hlong) (double / Hlong)
Hälfte der Seitenlänge des Rechtecks senkrecht zur
Leserichtung des Barcodes.
Defaultwert: 100.0
DecodedDataStrings DecodedDataStrings DecodedDataStrings DecodedDataStrings decodedDataStrings
(output_control) string(-array) →
HTuple HTuple Htuple (string) (string ) (HString ) (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
Ergebnis
decode_bar_code_rectangle2 decode_bar_code_rectangle2 DecodeBarCodeRectangle2 DecodeBarCodeRectangle2 DecodeBarCodeRectangle2
liefert den Wert 2 (H_MSG_TRUE), falls die
übergebenen Parameter korrekt sind.
Ansonsten wird eine Fehlerbehandlung durchgeführt.
Vorgänger
create_bar_code_model create_bar_code_model CreateBarCodeModel CreateBarCodeModel CreateBarCodeModel
,
set_bar_code_param set_bar_code_param SetBarCodeParam SetBarCodeParam SetBarCodeParam
,
smallest_rectangle2 smallest_rectangle2 SmallestRectangle2 SmallestRectangle2 SmallestRectangle2
Nachfolger
get_bar_code_result get_bar_code_result GetBarCodeResult GetBarCodeResult GetBarCodeResult
,
get_bar_code_object get_bar_code_object GetBarCodeObject GetBarCodeObject GetBarCodeObject
,
clear_bar_code_model clear_bar_code_model ClearBarCodeModel ClearBarCodeModel ClearBarCodeModel
Alternativen
find_bar_code find_bar_code FindBarCode FindBarCode FindBarCode
Siehe auch
gen_rectangle2 gen_rectangle2 GenRectangle2 GenRectangle2 GenRectangle2
Modul
Bar Code