KlassenKlassenKlassenKlassen | | | | Operatoren

decode_1d_bar_codeT_decode_1d_bar_codeDecode1dBarCodedecode_1d_bar_codeDecode1dBarCodeDecode1dBarCode (Operator)

Name

decode_1d_bar_codeT_decode_1d_bar_codeDecode1dBarCodedecode_1d_bar_codeDecode1dBarCodeDecode1dBarCode — Decodieren einer Sequenz an Barcode-Elementen.

Warnung

decode_1d_bar_codedecode_1d_bar_codeDecode1dBarCodedecode_1d_bar_codeDecode1dBarCodeDecode1dBarCode ist veraltet und wird nur aus Gründen der Rückwärtskompatibilität zur Verfügung gestellt. Neue Applikationen zum Lesen von Barcode-Symbologien sollten stattdessen die Funktionalitäten im Kapitel Identifizierung / Barcode verwenden (siehe find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode).

Signatur

decode_1d_bar_code( : : BarCodeElements, BarCodeDescr : Characters, Reference, IsCorrect)

Herror T_decode_1d_bar_code(const Htuple BarCodeElements, const Htuple BarCodeDescr, Htuple* Characters, Htuple* Reference, Htuple* IsCorrect)

Herror decode_1d_bar_code(const HTuple& BarCodeElements, const HTuple& BarCodeDescr, HTuple* Characters, HTuple* Reference, HTuple* IsCorrect)

HTuple HBarCode1D::Decode1dBarCode(const HTuple& BarCodeElements, HTuple* Reference, HTuple* IsCorrect) const

void Decode1dBarCode(const HTuple& BarCodeElements, const HTuple& BarCodeDescr, HTuple* Characters, HTuple* Reference, HTuple* IsCorrect)

void HOperatorSetX.Decode1dBarCode(
[in] VARIANT BarCodeElements, [in] VARIANT BarCodeDescr, [out] VARIANT* Characters, [out] VARIANT* Reference, [out] VARIANT* IsCorrect)

VARIANT HBarCode1DX.Decode1dBarCode(
[in] VARIANT BarCodeElements, [in] VARIANT BarCodeDescr, [out] VARIANT* Reference, [out] Hlong* IsCorrect)

static void HOperatorSet.Decode1dBarCode(HTuple barCodeElements, HTuple barCodeDescr, out HTuple characters, out HTuple reference, out HTuple isCorrect)

Beschreibung

decode_1d_bar_codedecode_1d_bar_codeDecode1dBarCodedecode_1d_bar_codeDecode1dBarCodeDecode1dBarCode decodiert eine Sequenz von Strichen und Lücken (Elemente) die mit find_1d_bar_codefind_1d_bar_codeFind1dBarCodefind_1d_bar_codeFind1dBarCodeFind1dBarCode oder get_1d_bar_codeget_1d_bar_codeGet1dBarCodeget_1d_bar_codeGet1dBarCodeGet1dBarCode gefunden wurden. Als Eingabe dient die Dicke aller Elemente (in Pixeln) in nicht diskretisierter Form. Es kann jedoch auch die diskrete Form der Elemente verwendet werden wie sie von discrete_1d_bar_codediscrete_1d_bar_codeDiscrete1dBarCodediscrete_1d_bar_codeDiscrete1dBarCodeDiscrete1dBarCode erzeugt wird.

Das Ergebnis ist die Sequenz der Zeichen CharactersCharactersCharactersCharactersCharacterscharacters und der Referenznummern ReferenceReferenceReferenceReferenceReferencereference. Zusätzlich wird der Parity-Test für die gefundenen Zeichen durchgeführt und das Ergebnis in IsCorrectIsCorrectIsCorrectIsCorrectIsCorrectisCorrect übergeben. Für den Fall das alle Zeichen als Nutzzeichen verwendet werden, ist der Wert von IsCorrectIsCorrectIsCorrectIsCorrectIsCorrectisCorrect zu ignorieren.

Achtung

Bei Barcodes vom Typ Pharmacode kann die Leserichtung nicht aus den Barcodedaten bestimmt werden, da der Barcode keine Extrazeichen (wie Start- oder Stop- oder Prüfzeichen) spezifiziert, die eine Bestimmung der Leserichtung ermöglichen, so dass der Barcode immer in beiden Richtungen gelesen werden kann. Für PharmaCodes werden deshalb die Ergebnisse der Dekodierung in beide Leserichtungen als zwei Werte sowohl in CharactersCharactersCharactersCharactersCharacterscharacters als auch in ReferenceReferenceReferenceReferenceReferencereference zurückgeliefert. Die Entscheidung, welches Element die richtige Leserichtung beinhaltet muss vom Aufrufer anhand der Orientierung des Barcodes (wie sie im Parameter OrientationOrientationOrientationOrientationOrientationorientation bei find_1d_bar_codefind_1d_bar_codeFind1dBarCodefind_1d_bar_codeFind1dBarCodeFind1dBarCode und find_1d_bar_code_regionfind_1d_bar_code_regionFind1dBarCodeRegionfind_1d_bar_code_regionFind1dBarCodeRegionFind1dBarCodeRegion zurückgeliefert wird) entschieden werden. Dabei entspricht das jeweils erste Element von CharactersCharactersCharactersCharactersCharacterscharacters und ReferenceReferenceReferenceReferenceReferencereference der Standardleserichtung in der Orientierung, die durch OrientationOrientationOrientationOrientationOrientationorientation kodiert wird, und das jeweils zweite Element der entgegengesetzten Leserichtung. Falls z.B. die Orientierung 0 ist, entspricht der erste Wert der Leserichtung von rechts nach links. Falls die Orientierung ist, entspricht der erste Wert der Leserichtung von oben nach unten.

Parallelisierung

Parameter

BarCodeElementsBarCodeElementsBarCodeElementsBarCodeElementsBarCodeElementsbarCodeElements (input_control)  number-array HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Breite der Elemente des Barcodes.

BarCodeDescrBarCodeDescrBarCodeDescrBarCodeDescrBarCodeDescrbarCodeDescr (input_control)  barcode_1d HTupleHTupleHBarCode1D, HTupleHBarCode1DX, VARIANTHtuple (string / integer / real) (string / int / long / double) (HString / Hlong / double) (char* / Hlong / double) (BSTR / Hlong / double) (char* / Hlong / double)

Beschreibung eines Barcode-Typs

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

Decodierte Zeichen in Standard-Interpretation.

ReferenceReferenceReferenceReferenceReferencereference (output_control)  integer-array HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Decodierte Zeichen als Zahlenwerte.

IsCorrectIsCorrectIsCorrectIsCorrectIsCorrectisCorrect (output_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Information, ob es sich um einen korrekten Barcode handelt.

Werteliste: 0, 1

Beispiel (C++ (HALCON 5.0-10.0))

HTuple   empty;   // empty list of values
HTuple   BarCodeDescr;
HTuple   BarcodeFound,Elements,Orientation;
HTuple   Characters,Reference,IsCorrect;
Hobject  Image,CodeRegion;

gen_1d_bar_code_descr("EAN 13",13,13,&BarCodeDescr);
find_1d_bar_code(Image,&CodeRegion,BarCodeDescr,empty,empty,
                 &BarcodeFound,&Elements,&Orientation);
if (BarcodeFound[0].l)
{
  decode_1d_bar_code(Elements,BarCodeDescr,
                     &Characters,&Reference,&IsCorrect);
  if (IsCorrect[0].l)
    for (int i=0; i<Characters.Num(); i++)
    {
      char *value = Characters[i];
    }
}

Ergebnis

decode_1d_bar_codedecode_1d_bar_codeDecode1dBarCodedecode_1d_bar_codeDecode1dBarCodeDecode1dBarCode liefert den Wert 2 (H_MSG_TRUE), sofern die übergebene Barcodebeschreibung korrekt ist und eine interpretierbare Elementliste übergeben wird.

Modul

Bar Code


KlassenKlassenKlassenKlassen | | | | Operatoren