KlassenKlassenKlassenKlassen | | | | Operatoren

set_bar_code_paramset_bar_code_paramSetBarCodeParamset_bar_code_paramSetBarCodeParamSetBarCodeParam (Operator)

Name

set_bar_code_paramset_bar_code_paramSetBarCodeParamset_bar_code_paramSetBarCodeParamSetBarCodeParam — Setzen ausgewählter Parameter des Barcode-Modells.

Signatur

set_bar_code_param( : : BarCodeHandle, GenParamNames, GenParamValues : )

Herror set_bar_code_param(const Hlong BarCodeHandle, const char* GenParamNames, double GenParamValues)

Herror T_set_bar_code_param(const Htuple BarCodeHandle, const Htuple GenParamNames, const Htuple GenParamValues)

Herror set_bar_code_param(const HTuple& BarCodeHandle, const HTuple& GenParamNames, const HTuple& GenParamValues)

void HBarCode::SetBarCodeParam(const HTuple& GenParamNames, const HTuple& GenParamValues) const

void SetBarCodeParam(const HTuple& BarCodeHandle, const HTuple& GenParamNames, const HTuple& GenParamValues)

void HBarCode::SetBarCodeParam(const HTuple& GenParamNames, const HTuple& GenParamValues) const

void HBarCode::SetBarCodeParam(const HString& GenParamNames, double GenParamValues) const

void HBarCode::SetBarCodeParam(const char* GenParamNames, double GenParamValues) const

void HOperatorSetX.SetBarCodeParam(
[in] VARIANT BarCodeHandle, [in] VARIANT GenParamNames, [in] VARIANT GenParamValues)

void HBarCodeX.SetBarCodeParam(
[in] VARIANT GenParamNames, [in] VARIANT GenParamValues)

static void HOperatorSet.SetBarCodeParam(HTuple barCodeHandle, HTuple genParamNames, HTuple genParamValues)

void HBarCode.SetBarCodeParam(HTuple genParamNames, HTuple genParamValues)

void HBarCode.SetBarCodeParam(string genParamNames, double genParamValues)

Beschreibung

Der Operator set_bar_code_paramset_bar_code_paramSetBarCodeParamset_bar_code_paramSetBarCodeParamSetBarCodeParam erlaubt es, Parameter, welche Eigenschaften des Barcodes beschreiben oder das Verhalten des Modells bei der Symbolsuche steuern, zu verändern. Damit kann auf Besonderheiten des Barcodes oder dessen Abbildung durch den Bildsensor eingegangen werden. Alle Parameter können auch direkt beim Anlegen des Modells mit create_bar_code_modelcreate_bar_code_modelCreateBarCodeModelcreate_bar_code_modelCreateBarCodeModelCreateBarCodeModel übergeben werden. Die aktuelle Konfiguration kann mit Hilfe von get_bar_code_paramget_bar_code_paramGetBarCodeParamget_bar_code_paramGetBarCodeParamGetBarCodeParam ausgelesen werden.

Es folgt eine Übersicht über die verschiedenen generischen Parameter mit den jeweiligen Wertebereichen und Defaultwerten:

Größe der Barcode Elemente:

Die beiden ersten Parameter, 'element_size_min'"element_size_min""element_size_min""element_size_min""element_size_min""element_size_min" und 'element_size_max'"element_size_max""element_size_max""element_size_max""element_size_max""element_size_max", beeinflussen die Suche nach Kandidatenregionen und die Dekodierung der Barcodes. Sie werden aber nicht strikt als Grenzen für die Größe der Elemente gefundener Barcodes verwendet. D.h. es können auch Barcodes gefunden werden, deren Elemente schmaler als 'element_size_min'"element_size_min""element_size_min""element_size_min""element_size_min""element_size_min" oder breiter als 'element_size_max'"element_size_max""element_size_max""element_size_max""element_size_max""element_size_max" sind.

'element_size_min'"element_size_min""element_size_min""element_size_min""element_size_min""element_size_min":

Die minimale Größe eines Elements, d.h. die minimale Dicke aller Striche und Zwischenräume. Der Wert dieses Parameters ist in Pixel definiert. Für Barcodes mit niedriger Auflösung sollte der Wert auf 1.5 reduziert werden, ggf. sogar auf bis zu 1.2. Für sehr große Barcodes kann der Wert entsprechend vergrößert werden, was kürzere Laufzeiten mit sich bringt.

Typischer Wertebereich: [1.2 .. 10.0]

Standardwert: 2.0

'element_size_max'"element_size_max""element_size_max""element_size_max""element_size_max""element_size_max":

Die maximale Größe eines Elements, d.h. die maximale Dicke aller Striche und Zwischenräume. Der Wert dieses Parameters ist in Pixel definiert. Er sollte groß genug sein, damit für das komplette Symbol die Kandidatenregion gefunden wird. Anderseits darf er nicht so groß gewählt werden, dass zwei benachbarte Barcodes zu einem einzelnen Kandidaten verschmelzen.

Typischer Wertebereich: [4.0 .. 60.0]

Standardwert: 8.0

'element_size_variable'"element_size_variable""element_size_variable""element_size_variable""element_size_variable""element_size_variable":

In manchen Barcodeaufnahmen variiert die Breite des kleinsten Elements über den Bereich des Barcodes. Diese Veränderungen entstehen durch perspektivische Projektion oder durch Deformation der Oberfläche, auf welcher der Barcode gedruckt ist (z.B. eine Tonnenverzerrung auf einer Flasche). Standardmäßig kann der Barcodeleser solche Verzerrungen nicht ausgleichen. Sollte die Einstellung 'element_size_variable'"element_size_variable""element_size_variable""element_size_variable""element_size_variable""element_size_variable" auf 'true'"true""true""true""true""true" gesetzt sein, wird versucht, solche Deformationen lokal bei der Dekodierung auszugleichen. Dies kann dazu führen, dass Barcodes auch unter solche Bedingungen gelesen werden können. Man beachte, dass nicht alle Deformationen ausgeglichen werden können.

Der Parameter 'element_size_variable'"element_size_variable""element_size_variable""element_size_variable""element_size_variable""element_size_variable" ist nur für folgende Barcodetypen implementiert:

Bei anderen Barcodetypen hat dieser Parameter keinen Effekt.

Werte: 'false'"false""false""false""false""false", 'true'"true""true""true""true""true"

Standardwert: 'false'"false""false""false""false""false"

'element_height_min'"element_height_min""element_height_min""element_height_min""element_height_min""element_height_min":

Die minimale Höhe des Barcodes. Der Wert dieses Parameters ist in Pixel definiert. Die Voreinstellung mit -1 bedeutet, dass intern die Höhe des Barcodes automatisch entsprechend den anderen Einstellung gewählt wird. Bei sehr flachen Barcodes mit einer Höhe von weniger als 16 Pixeln ist es sinnvoll die Höhe manuell einzustellen, damit der Barcode gefunden und gelesen werden kann. Die minimale Höhe beträgt 8 Pixel. Bei sehr hohen Barcodes, z.B. mit 70 Pixeln und mehr, kann das manuelle Setzen auf die entsprechende Höhe zu einer Beschleunigung beim Lesen führen.

Typischer Wertebereich: [-1, 8 .. 64]

Standardwert: -1

Scanparameter:

'num_scanlines'"num_scanlines""num_scanlines""num_scanlines""num_scanlines""num_scanlines":

Die maximale Anzahl von Scanlinien, die während des Scannens eines (Kandidat-)Symbols benutzt werden. Wenn 'num_scanlines'"num_scanlines""num_scanlines""num_scanlines""num_scanlines""num_scanlines" nicht gesetzt ist (der Parameter hat einen Wert von 0), wird die Anzahl der Scanlinien nach einer internen Regel bestimmt: 10 für alle einzeiligen Barcodes, 20 für GS1 DataBar Stacked beziehungsweise GS1 DataBar Stacked Omnidirectional und 55 für GS1 DataBar Expanded Stacked. Durch diesen Parameter kann die Geschwindigkeit in zwei Fällen gesteigert werden. Im ersten Fall beinhaltet das Bild viele falsche Kandidaten. Während der Barcode selbst normalerweise nach ein oder zwei Scanvorgängen dekodiert werden kann (außer gestapelte Barcodes, siehe unten), wird ein falscher Kandidat mit dem Defaultwert von 10 Scanlinien gescannt, was die Laufzeit unnötig verlängert. Folglich kann die Geschwindigkeit durch eine reduzierte Anzahl der Scanlinien erhöht werden. Generell lässt sich sagen, dass Bilder höherer Qualität weniger Scanlinien benötigen als Bilder von niedrigerer Qualität. Für ein durchschnittliches Bild sollte ein Wert zwischen 2 und 5 ausreichend sein. Sollte ein Barcode jedoch nach Verringerung der Scanlinien nicht mehr gefunden werden, so muss die Anzahl der Scanlinien wieder erhöht werden. Der zweite Fall betrifft gestapelte Barcodes (derzeit GS1 DataBar Stacked, GS1 DataBar Stacked Omnidirectional und GS1 DataBar Expanded Stacked). Hier werden alle Scanlinien bewertet - im Gegensatz zu einzeiligen Barcodes (z.B. Code 128, EAN 13 oder GS1 DataBar Limited), wo das Scannen nach erfolgreicher Dekodierung des Codes beendet wird. Der Scanvorgang ist eine der zeitaufwändigsten Phasen des Operators find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode. Deswegen kann die Anpassung des Parameters 'num_scanlines'"num_scanlines""num_scanlines""num_scanlines""num_scanlines""num_scanlines" große Geschwindigkeitsvorteile bringen. Das gilt insbesondere für GS1 DataBar Expanded Stacked. Ein GS1 DataBar Expanded Stacked Symbol kann in der Regel aus bis zu 11 Zeilen bestehen. Damit jede Zeile robust von jeweils 5 Scanlinien gelesen wird, sind im Operator 55 Scanlinien für den allgemeinen Fall vorgesehen. Wenn nur Symbole mit geringer Zeilenanzahl zu erwarten sind, sollte 'num_scanlines'"num_scanlines""num_scanlines""num_scanlines""num_scanlines""num_scanlines" auf 1.5 bis 5 Scanlinien pro erwartete Zeile reduziert werden.

Dieser Parameter kann mit dem Operator set_bar_code_param_specificset_bar_code_param_specificSetBarCodeParamSpecificset_bar_code_param_specificSetBarCodeParamSpecificSetBarCodeParamSpecific spezifisch für unterschiedliche Barcodetypen gesetzt werden.

Typische Werte: [0, 5, 10, 20 ...]

Standardwert: 0

'min_identical_scanlines'"min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines":

Die minimale Anzahl von Scanlinien, welche dasselbe Ergebnis liefern, die nötig ist, um die Dekodierung eines Symbols zu akzeptieren. Wenn 'min_identical_scanlines'"min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines" nicht gesezt ist (der Parameter hat einen Wert von 0) wird der Barcode dekodiert, sobald eine Scanlinie erfolgreich dekodiert wurde. Ähnlich reicht bei gestapelten Barcodes eine erfolgreich dekodierte Scanlinie pro Barcodezeile. Es ist empfehlenswert, diesen Parameter auf 2 oder höher zu setzen, wenn man verhindern will, dass ein Barcode unbeabsichtigt gefunden wird. Dies kann insbesondere der Fall sein, wenn schlechte Bildqualität oder verrauschte Bildregionen dazu führen, dass eine Scanlinie fehlerhafte oder gar falsche Strichkanten findet. Dieser Parameter kann auch die falsche Leserate in Bildern verringern, in welchen Symbolen unterschiedlicher Barcodetyps gleichzeitig erscheinen.

Dieser Parameter kann mit dem Operator set_bar_code_param_specificset_bar_code_param_specificSetBarCodeParamSpecificset_bar_code_param_specificSetBarCodeParamSpecificSetBarCodeParamSpecific spezifisch für unterschiedliche Barcodetypen gesetzt werden.

Typische Werte: [0, 2, 3, ...]

Standardwert: 0

'stop_after_result_num'"stop_after_result_num""stop_after_result_num""stop_after_result_num""stop_after_result_num""stop_after_result_num":

Anzahl erfolgreich dekodierter Barcodes nach der die Dekodierung angehalten wird. Falls dieser Parameter nicht gesetzt ist (der Parameter hat einen Wert von 0), wird versucht alle Kandidaten zu dekodieren. Dieser Parameter wird typischerweise gesetzt, wenn die erwartete Anzahl von Barcodes im Voraus bekannt ist. Dann kann der Barcode-Leser die weitere Dekodierung von Kandidaten abbrechen und die Gesamtdekodierzeit wird reduziert.

Typische Werte: [0, 1, 2, ...]

Standardwert: 0

'orientation'"orientation""orientation""orientation""orientation""orientation":

Erwarteter Barcode Orientierungswinkel. Ein potentieller (Kandidat-) Barcode hat Striche ähnlicher Orientierung. Man kann die Parameter 'orientation'"orientation""orientation""orientation""orientation""orientation" und 'orientation_tol'"orientation_tol""orientation_tol""orientation_tol""orientation_tol""orientation_tol" anpassen, um den Wertebereich ['orientation'"orientation""orientation""orientation""orientation""orientation"-'orientation_tol'"orientation_tol""orientation_tol""orientation_tol""orientation_tol""orientation_tol", 'orientation'"orientation""orientation""orientation""orientation""orientation"+'orientation_tol'"orientation_tol""orientation_tol""orientation_tol""orientation_tol""orientation_tol"] zu definieren. find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode bearbeitet nur Kandidatenregionen, deren Striche einen durchschnittlichen Orientierungswinkel haben, der in dem obigen Wertebereich liegt. Falls die Barcodes nur mit einer bestimmter Orientierung in den bearbeiteten Bildern erscheinen, so kann man den Wertebereich entsprechend reduzieren, sodass falsche Kandidaten früher erkannt werden und sich so die Ausführungszeit des Operator verkürzt. Diese Strategie bringt vor allem dann Vorteile, wenn die bearbeiteten Bilder viel Hintegrundtextur mit falsch orientierten Kandidaten enthalten.

Ausführlichere Informationen zu dem Orientierungswinkel können beim Operator get_bar_code_resultget_bar_code_resultGetBarCodeResultget_bar_code_resultGetBarCodeResultGetBarCodeResult(...,'orientation'"orientation""orientation""orientation""orientation""orientation",...) nachgelesen werden. Im Gegensatz zu get_bar_code_resultget_bar_code_resultGetBarCodeResultget_bar_code_resultGetBarCodeResultGetBarCodeResult, wird hier die eigentliche Leserichtung nicht berücksichtigt, und es sind deswegen nur Winkel in dem Wertebereich [-90.0 ... 90.0] von Interesse. Die einzige Ausnahme dazu sind Barcodes vom Typ PharmaCode, welche keine eindeutige Leserichtung haben und somit auch in der Regel zwei dekodierte Ergebnisse zurückliefern: mit einem Wertebereich von [-180.0 ... 180.0] kann eine spezielle Leserichtung und damit auch ein einzelnes Ergebnis gewählt werden.

Dieser Parameter kann mit dem Operator set_bar_code_param_specificset_bar_code_param_specificSetBarCodeParamSpecificset_bar_code_param_specificSetBarCodeParamSpecificSetBarCodeParamSpecific spezifisch für unterschiedliche Barcodetypen gesetzt werden.

Typischer Wertebereich: [-90.0 ... 90.0]

Standardwert: 0.0

'orientation_tol'"orientation_tol""orientation_tol""orientation_tol""orientation_tol""orientation_tol":

Toleranz der Orientierung. Siehe 'orientation'"orientation""orientation""orientation""orientation""orientation" für weitere Erklärungen. Wie bereits erklärt wurde, ist nur der Wertebereich [-90.0 ... 90.0] berücksichtigt, was mit einem 'orientation_tol'"orientation_tol""orientation_tol""orientation_tol""orientation_tol""orientation_tol" von 90.0 ganz abgedeckt wird. Deswegen sind die Werte von 'orientation_tol'"orientation_tol""orientation_tol""orientation_tol""orientation_tol""orientation_tol" auf den Wertebereich [0.0 ... 90.0] eingeschränkt. Dabei stellt ein Wert von 90.0 die Orientierungbeschränkung grundsätzlich aus.

Dieser Parameter kann mit dem Operator set_bar_code_param_specificset_bar_code_param_specificSetBarCodeParamSpecificset_bar_code_param_specificSetBarCodeParamSpecificSetBarCodeParamSpecific spezifisch für unterschiedliche Barcodetypen gesetzt werden.

Typischer Wertebereich: [0.0 ... 90.0]

Standardwert: 90.0

'quiet_zone'"quiet_zone""quiet_zone""quiet_zone""quiet_zone""quiet_zone":

Steuert die Verifikation der Ruhezonen eines Barcodesymbols. Wenn diese eingeschaltet ist, werden Scanlinen verworfen, falls unerwartete Striche in den Ruhezonen gefunden werden. Wenn 'quiet_zone'"quiet_zone""quiet_zone""quiet_zone""quiet_zone""quiet_zone"='true'"true""true""true""true""true", muss die Ruhezone mindestens so breit sein, wie in der entsprechenden Barcode-Norm festgesetzt ist. Diese Werte (in X-Einheiten, wobei X eine "Modulbreite" bezeichnet, d.h. die Breite des schmalsten Striches aus der Strichsequenz des Barcodes) können von der folgenden Tabelle entnommen werden:

    Barcodetyp       Linke RZ  Rechte RZ    Barcodetyp                   Linke RZ  Rechte RZ
    ---------------  --------  ---------    ---------------------------  --------  ---------
                                                                                           
    2/5 Industrial    10        10          UPC-A                         9         9      
    2/5 Interleaved   10        10          UPC-A Add-On 2                9         5      
    Codabar           10        10          UPC-A Add-On 5                9         5      
    Code 39           10        10          UPC-E                         9         7      
    Code 93           10        10          UPC-E Add-On 2                9         5      
    Code 128          10        10          UPC-E Add-On 5                9         5      
    MSI               10        10          GS1-128                       10        10     
    PharmaCode        5         5           GS1 DataBar Omnidir           1         1      
    EAN-8             7         7           GS1 DataBar Truncated         1         1      
    EAN-8 Add-On 2    7         5           GS1 DataBar Stacked           1         1      
    EAN-8 Add-On 5    7         5           GS1 DataBar Stacked Omnidir   1         1      
    EAN-13            11        7           GS1 DataBar Limited           1         1      
    EAN-13 Add-On 2   11        5           GS1 DataBar Expanded          1         1      
    EAN-13 Add-On 5   11        5           GS1 DataBar Expanded Stacked  1         1      
  

Wenn 'quiet_zone'"quiet_zone""quiet_zone""quiet_zone""quiet_zone""quiet_zone" auf eine Ganzzahl (>= 1) gesetzt ist, dann muss eine Ruhezone von mindestens 'quiet_zone'"quiet_zone""quiet_zone""quiet_zone""quiet_zone""quiet_zone" x X eingehalten werden.

Wenn 'quiet_zone'"quiet_zone""quiet_zone""quiet_zone""quiet_zone""quiet_zone"='tolerant'"tolerant""tolerant""tolerant""tolerant""tolerant", ist eine beschränkte Anzahl an Kanten in der Ruhezone erlaubt, aber höchstens eine pro vier Modulbreiten. Das Ziel ist zu verhindern, nur einen Teil von einem Barcode zu erkennen, aber dennoch Codes mit einer einfachen Verletzung der Ruhezone noch lesen zu können.

Wenn 'quiet_zone'"quiet_zone""quiet_zone""quiet_zone""quiet_zone""quiet_zone"='false'"false""false""false""false""false", ist die Verifikation ausgeschaltet.

Die Verifikation der Ruhezone ist insbesondere für das Lesen von Barcodes im 'auto'-Modus wichtig. Sie verhindert, dass einfache Barcodes innerhalb einer Strichsequenz eines längeren und/oder komplexeren Barcodes gefunden werden. Normalerweise liefern Werte zwischen 2 und 4 optimale Ergebnisse, weil dadurch falsche Barcodes unterdrückt werden, während kleine Störungen wie Text, Etikettenkanten, etc. immer noch toleriert werden.

Wertevorschläge: 'false'"false""false""false""false""false", 'true'"true""true""true""true""true", 1, 2, 3, 4, 5

Standardwert: 'false'"false""false""false""false""false"

'slanted'"slanted""slanted""slanted""slanted""slanted":

Zusätzliche Bearbeitung für schrägabgebildete Barcodesymbole, d.h., Symbole deren Striche nicht orthogonal zu der Hauptrichtung des Symbols ausgerichtet sind. Zur Zeit werden drei Modi dieses Parameters unterstützt:

Wenn 'slanted'"slanted""slanted""slanted""slanted""slanted"='true'"true""true""true""true""true", versucht find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode die Hauptrichtung des Symbols unabhängig von der Orientierung der Striche zu bestimmen.

Wenn 'slanted'"slanted""slanted""slanted""slanted""slanted"='false'"false""false""false""false""false", bestimmt der Operator nur die Orientierung der Striche und nimmt ihre Orthogonalle als Hauptrichtung des Symbols. Das bewirkt das Ausschalten dieses zusätzlichen Bearbeitungsschritts.

If 'slanted'"slanted""slanted""slanted""slanted""slanted"='auto'"auto""auto""auto""auto""auto", versucht der Operator zuerst das Symbol anhand der von den Strichen abgeleiteten Orientierung zu dekodieren. Falls dieses Versuch scheitert bestimmt der Algorithmus die Hauptrichtung des Symbols und versucht erneut das Symbol zu dekodieren.

Wenn die Oberfläche, auf der das Symbol aufgedruckt ist, parallel zum Kamerasensor steht, entsteht keine Verzeichnung bei der Abbildung des Symbols im Bild, d.h., es ist nicht schräg. In Gegensatz dazu wird das Symbol schräg abgebildet, wenn die Oberfläche gekippt relativ zur Kamera steht. Ähnliche Verzeichnugen können auch bei Symbolen beobachtet werden, die mit Linescankameras aufgenommen wurden.

Die Bestimmung der dominierenden Strichorientierung basiert auf den detektierten Strichkanten. Im Gegensatz dazu wird die Hauptrichtung des Symbols aus der Form der Kandidatregion bestimmt. Demzufolge wird die Strichorientierung robuster bestimmt als die Symbolhauptrichtung. Das ist insbesondere dann der Fall, wenn die Kandidatenregion nicht sauber extrahiert werden kann (siehe get_bar_code_objectget_bar_code_objectGetBarCodeObjectget_bar_code_objectGetBarCodeObjectGetBarCodeObject mit ObjectName='candidate_regions'"candidate_regions""candidate_regions""candidate_regions""candidate_regions""candidate_regions"). In diesen Fällen umfasst die Kandidatenregion entweder nur ein Teil des Symbols oder das ganze Symbol zusammen mit umliegenden Texturen.

Aus diesen Gründen ist es zu empfehlen, die Bearbeitung von schrägabgebildeten Barcodesymbolen erst dann einzuschalten ('slanted'"slanted""slanted""slanted""slanted""slanted"='true'"true""true""true""true""true"), wenn das Bildeinzugssystem tatsächlich schräge Barcodes liefert und deren Kandidatenregionen sauber extrahiert werden können. Alternativ kann 'slanted'"slanted""slanted""slanted""slanted""slanted"='auto'"auto""auto""auto""auto""auto" ausgewählt werden. Es ist zu beachten, dass die derzeitige Implementierung von 'auto'"auto""auto""auto""auto""auto" dazu führen kann, dass falsche Barcodes gefunden und dekodiert werden. In diesem Fall ist es empfehlenswert, 'slanted'"slanted""slanted""slanted""slanted""slanted"='auto'"auto""auto""auto""auto""auto" mit anderen Barcodeparametern wie 'quiet_zone'"quiet_zone""quiet_zone""quiet_zone""quiet_zone""quiet_zone" und 'min_identical_scanlines'"min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines" zu kombinieren, um falsche Barcodes zu unterdrücken. Wenn das Bildeinzugssystem keine schrägabgebildeten Barcodes liefert, empfiehlt sich diese Behandlung ganz auszuschalten ('slanted'"slanted""slanted""slanted""slanted""slanted"='false'"false""false""false""false""false").

Werte: 'false'"false""false""false""false""false", 'auto'"auto""auto""auto""auto""auto", 'true'"true""true""true""true""true"

Standardwert: 'false'"false""false""false""false""false"

'start_stop_tolerance'"start_stop_tolerance""start_stop_tolerance""start_stop_tolerance""start_stop_tolerance""start_stop_tolerance":

Fordert ein tolerantes ('high'"high""high""high""high""high") oder ein strenges ('low'"low""low""low""low""low") Matchingkriterium bei der Suche nach Start-, bzw. Stopmuster in einer Scanlinie. Ein tolerantes Kriterium erhöht die allgemeine Leserate, insbesondere in Bildern mit schlechtem Kontrast. Anderseits kann diese Einstellung zu ungültigen Dekodierungen in verrauschten Bildern, oder in Bildern mit Symbolen anderer Barcodetyps führen. Ein strenges Kriterium erhöht die Robustheit gegenüber falscher Dekodierung, kann aber auch die allgemeine Leserate mindern. Es ist zu beachten, dass momentan zwei unterschiedliche Kriterien nur für Code 128 und GS1-128 implementiert sind.

Dieser Parameter kann mit dem Operator set_bar_code_param_specificset_bar_code_param_specificSetBarCodeParamSpecificset_bar_code_param_specificSetBarCodeParamSpecificSetBarCodeParamSpecific spezifisch für unterschiedliche Barcodetypen gesetzt werden. Obwohl man diesen Parameter für alle Barcodetypen setzen kann, hat er derzeit, wie bereits erwähnt, nur Wirkung auf Code 128 und GS1-128.

Werte: ['high'"high""high""high""high""high", 'low'"low""low""low""low""low"]

Standardwert: 'high'"high""high""high""high""high"

Erscheinungsbild der Module im Bild:

'meas_thresh'"meas_thresh""meas_thresh""meas_thresh""meas_thresh""meas_thresh":

Innerhalb einer Scanlinie werden Kanten mit Hilfe eines Schwellwerts gefunden. 'meas_thresh'"meas_thresh""meas_thresh""meas_thresh""meas_thresh""meas_thresh" bestimmt, wie dieser Schwellwert relativ zum Dynamikbereich der Grauwerte entlang der Scanlinie berechnet wird. Liegen in dem Barcode Störungen vor oder ist das Rauschen groß, so sollte 'meas_thresh'"meas_thresh""meas_thresh""meas_thresh""meas_thresh""meas_thresh" auf größere Werte gesetzt werden.

Typischer Wertebereich: [0.05 .. 0.2]

Standardwert: 0.05

'meas_thresh_abs'"meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs":

Der Parameter 'meas_thresh_abs'"meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs" wird benutzt, um die falsche Kantendetektion zu verhindern. Sollte eine Scanlinie in eine Bildregion mit zu kleinem Dynamikbereich geraten (z.B. eine überwiegend weiße Region mit Grauwerten nahe 255), wird der Schwellwert zum Kantendetektion unangemessen klein berechnet. Das führt des Öfteren zur Detektion großer Mengen falscher Kanten. Falls der Schwellwert, der auf dem Parameter 'meas_thresh'"meas_thresh""meas_thresh""meas_thresh""meas_thresh""meas_thresh" basiert, kleiner als der Wert des Parameters 'meas_thresh_abs'"meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs" wird, wird der letztere Wert als Schwellwert genommen. Standardmäßig ist 'meas_thresh_abs'"meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs" auf 5.0 gesetzt. Sollten Bilder mit höherem Rauschpegel behandelt werden, könnte ein Erhöhen des Parameterwertes nutzlich sein. Anderseits, wenn rauschfreie Bilder mit niedrigem Kontrast behandelt werden, könnte dieser Parameter die Detektion richtiger Kanten stören. In solchen Fällen ist es empfehlenswert, den Parameterwert zu mindern oder den Parameter sogar zu deaktivieren (auf 0.0 setzen).

Typischer Wertebereich: [0.0 .. 10.0]

Standardwert: 5.0

'max_diff_orient'"max_diff_orient""max_diff_orient""max_diff_orient""max_diff_orient""max_diff_orient":

Ein potentieller Barcode besteht aus Strichen und damit auch Kanten mit einer einheitlichen Orientierung. Die Größe 'max_diff_orient'"max_diff_orient""max_diff_orient""max_diff_orient""max_diff_orient""max_diff_orient" gibt an, wie stark der Unterschied in der Orientierung benachbarter Kanten sein darf. 'max_diff_orient'"max_diff_orient""max_diff_orient""max_diff_orient""max_diff_orient""max_diff_orient" ist ein Differenzwinkel in Gradmaß. Ist ein Barcode ausgefranst, d.h. die Strichkanten sind gestört, so ist 'max_diff_orient'"max_diff_orient""max_diff_orient""max_diff_orient""max_diff_orient""max_diff_orient" groß zu wählen. Mit kleinen Werten dagegen kann die Anzahl falscher Barcode Kandidaten reduziert werden.

Typischer Wertebereich: [2 .. 20]

Standardwert: 10

Symbol spezifische Größen:

'check_char'"check_char""check_char""check_char""check_char""check_char":

Barcodes mit optionalem Prüfzeichen werden anhand dieses Parameters interpretiert. Darunter fallen z.B. Code 39, Codabar, 2/5 Industrial und 2/5 Interleaved. Der Standardwert von 'absent'"absent""absent""absent""absent""absent" gibt an, dass kein Prüfzeichen vorliegt. In diesem Fall wird keine Prüfung durchgeführt, und alle Zeichen werden als Daten zurückgeliefert.

Ist dieser Parameter auf 'present'"present""present""present""present""present" gesetzt, so wird ein Prüfzeichen erwartet und benutzt um die Korrektheit des Barcodes zu prüfen. Ist die Prüfsumme fehlerhaft, so wird der entsprechende Barcode nicht als Ergebnis zurückgeliefert. Das Prüfzeichen selbst wird aus den Nutzdaten entfernt. Falls dies nicht erwünscht ist, kann der Parameterwert 'preserved'"preserved""preserved""preserved""preserved""preserved" eingestellt werden um das Prüfzeichen trotz Prüfung zu erhalten.

Barcodetypen mit obligatorischem Prüfzeichen verhalten sich immer so als wäre dieser Parameter auf 'present'"present""present""present""present""present" gesetzt. Darunter fallen z.B. Code 128, EAN-8, EAN-13 und UPC-A.

Dieser Parameter kann mit dem Operator set_bar_code_param_specificset_bar_code_param_specificSetBarCodeParamSpecificset_bar_code_param_specificSetBarCodeParamSpecificSetBarCodeParamSpecific spezifisch für unterschiedliche Barcodetypen gesetzt werden.

Werte: ['absent'"absent""absent""absent""absent""absent", 'present'"present""present""present""present""present", 'preserved'"preserved""preserved""preserved""preserved""preserved"]

Standardwert: 'absent'"absent""absent""absent""absent""absent"

'composite_code'"composite_code""composite_code""composite_code""composite_code""composite_code":

An den meisten GS1-tauglichen Barcodes kann eine 2D GS1-Composite Code Komponente angehängt sein. Wenn 'composite_code'"composite_code""composite_code""composite_code""composite_code""composite_code" auf 'CC-A/B'"CC-A/B""CC-A/B""CC-A/B""CC-A/B""CC-A/B" gesetzt ist, wird die Composite Komponente lokalisiert und dekodiert. Standardmäßig, ist 'composite_code'"composite_code""composite_code""composite_code""composite_code""composite_code" auf 'none'"none""none""none""none""none" gesetzt und so wird der Composite Komponente neben dem Barcode ignoriert. Besitzt ein Barcode des gesuchten Typs keine Composite Komponente, so wird beim Aufruf von find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode nur das Ergebnis des Barcodes zurückgeliefert. Zur Zeit werden GS1 Composite Codes nur zusammen mit einem Barcode der Familie GS1 DataBar unterstützt.

Dieser Parameter kann mit dem Operator set_bar_code_param_specificset_bar_code_param_specificSetBarCodeParamSpecificset_bar_code_param_specificSetBarCodeParamSpecificSetBarCodeParamSpecific spezifisch für unterschiedliche Barcodetypen gesetzt werden.

Werte: ['none'"none""none""none""none""none", 'CC-A/B'"CC-A/B""CC-A/B""CC-A/B""CC-A/B""CC-A/B"]

Standardwert: 'none'"none""none""none""none""none"

'upce_encodation'"upce_encodation""upce_encodation""upce_encodation""upce_encodation""upce_encodation":

UPC-E-Barcodes können in verschiedenen Ausgabeformaten zurückgegeben werden. Standardmäßig ist 'upce_encodation'"upce_encodation""upce_encodation""upce_encodation""upce_encodation""upce_encodation" auf 'ucc-12'"ucc-12""ucc-12""ucc-12""ucc-12""ucc-12" gesetzt und der dekodierte String wird im UCC-12-Format (bestehend aus 12 Ziffern) zurückgegeben. Wird 'upce_encodation'"upce_encodation""upce_encodation""upce_encodation""upce_encodation""upce_encodation" auf 'zero-suppressed'"zero-suppressed""zero-suppressed""zero-suppressed""zero-suppressed""zero-suppressed" gesetzt, so wird das Ergebnis im Zero-Suppressed-Format (also mit unterdrückten Nullen an definierten Stellen) zurückgegeben. Dieses Format besteht aus führender Null, sechs kodierten Ziffern und einem implizit kodiertem Prüfzeichen. Dies entspricht dem Format, das von ISO/IEC 15420 gefordert wird.

Dieser Parameter kann mit dem Operator set_bar_code_param_specificset_bar_code_param_specificSetBarCodeParamSpecificset_bar_code_param_specificSetBarCodeParamSpecificSetBarCodeParamSpecific spezifisch für den Barcodetype UPC-E gesetzt werden.

Werte: ['ucc-12'"ucc-12""ucc-12""ucc-12""ucc-12""ucc-12", 'zero-suppressed'"zero-suppressed""zero-suppressed""zero-suppressed""zero-suppressed""zero-suppressed"]

Standardwert: 'ucc-12'"ucc-12""ucc-12""ucc-12""ucc-12""ucc-12"

Training:

Neben dem manuellen Setzen der Modellparameter mit dem Operator set_bar_code_paramset_bar_code_paramSetBarCodeParamset_bar_code_paramSetBarCodeParamSetBarCodeParam ist es auch möglich, das Modell mit Hilfe von find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode anhand eines oder mehrerer Beispielbilder zu trainieren. Dazu muss zuerst ein Barcode-Modell im Trainings-Modus erstellt werden, oder ein bestehendes Barcode-Modell muss in den Trainings-Modus versetzt werden, indem man in set_bar_code_paramset_bar_code_paramSetBarCodeParamset_bar_code_paramSetBarCodeParamSetBarCodeParam als generischen Parameter GenParamNamesGenParamNamesGenParamNamesGenParamNamesGenParamNamesgenParamNames 'train'"train""train""train""train""train" übergibt. Der entsprechende Wert bei GenParamValuesGenParamValuesGenParamValuesGenParamValuesGenParamValuesgenParamValues bestimmt, welche Parameter gelernt werden sollen. Im einzelnen können die folgenden Werte gesetzt werden:

'all'"all""all""all""all""all":

Es werden alle trainierbaren Parameter gelernt.

'element_size_min'"element_size_min""element_size_min""element_size_min""element_size_min""element_size_min":

Minimale Größe eines Elements. Diese Einstellung trainiert den Parameter 'element_size_min'"element_size_min""element_size_min""element_size_min""element_size_min""element_size_min".

'element_size_max'"element_size_max""element_size_max""element_size_max""element_size_max""element_size_max":

Maximale Größe eines Elements. Diese Einstellung trainiert den Parameter 'element_size_max'"element_size_max""element_size_max""element_size_max""element_size_max""element_size_max".

'meas_thresh'"meas_thresh""meas_thresh""meas_thresh""meas_thresh""meas_thresh":

Relativer Schwellwert zur Kantenbestimmung in Scanlinien. Diese Einstellung trainiert den Parameter 'meas_thresh'"meas_thresh""meas_thresh""meas_thresh""meas_thresh""meas_thresh".

'meas_thresh_abs'"meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs":

Absoluter Schwellwert zur Kantenbestimmung in Scanlinien. Diese Einstellung trainiert den Parameter 'meas_thresh_abs'"meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs".

'max_diff_orient'"max_diff_orient""max_diff_orient""max_diff_orient""max_diff_orient""max_diff_orient":

Maximaler Unterschied in der Orientierung benachbarter Kanten. Diese Einstellung trainiert den Parameter 'max_diff_orient'"max_diff_orient""max_diff_orient""max_diff_orient""max_diff_orient""max_diff_orient".

'orientation'"orientation""orientation""orientation""orientation""orientation":

Orientierung des Barcodes. Diese Einstellung trainiert die Parameter 'orientation'"orientation""orientation""orientation""orientation""orientation" und 'orientation_tol'"orientation_tol""orientation_tol""orientation_tol""orientation_tol""orientation_tol". Nach Abschluss des Trainings sollte der Wert für 'orientation_tol'"orientation_tol""orientation_tol""orientation_tol""orientation_tol""orientation_tol" noch um einen Toleranzwert erhöht werden um auch Barcodes zu finden deren Orientierung sich leicht außerhalb des trainierten Bereichs befindet.

Es können mehrere Parameter in einem Aufruf von find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode gemeinsam trainiert werden, indem 'train'"train""train""train""train""train" in set_bar_code_paramset_bar_code_paramSetBarCodeParamset_bar_code_paramSetBarCodeParamSetBarCodeParam in einem Tuple mehrfach mit den entsprechenden Werten übergeben wird: z.B. GenParamNamesGenParamNamesGenParamNamesGenParamNamesGenParamNamesgenParamNames = ['train','train']["train","train"]["train","train"]["train","train"]["train","train"]["train","train"] und GenParamValuesGenParamValuesGenParamValuesGenParamValuesGenParamValuesgenParamValues = ['element_size_min','element_size_max']["element_size_min","element_size_max"]["element_size_min","element_size_max"]["element_size_min","element_size_max"]["element_size_min","element_size_max"]["element_size_min","element_size_max"]. Weiterhin können - im Zusammenhang mit 'train'"train""train""train""train""train" = 'all'"all""all""all""all""all" - einzelne Parameter explizit vom Training ausgeschlossen werden, indem zusätzlich 'train'"train""train""train""train""train" mit den entsprechenden Parametern und einem vorangestellten '~'"~""~""~""~""~" gesetzt wird: z.B. GenParamNamesGenParamNamesGenParamNamesGenParamNamesGenParamNamesgenParamNames = ['train','train']["train","train"]["train","train"]["train","train"]["train","train"]["train","train"] und GenParamValuesGenParamValuesGenParamValuesGenParamValuesGenParamValuesgenParamValues = ['all','~orientation']["all","~orientation"]["all","~orientation"]["all","~orientation"]["all","~orientation"]["all","~orientation"] trainiert alle Parameter außer 'orientation'"orientation""orientation""orientation""orientation""orientation".

Anschließend muss für jedes zu trainierende Bild der Operator find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode aufgerufen werden.

Die folgenden Hinweise sollten im Zusammenhang mit dem Training beachtet werden:

- Zusätzlich nötige, nicht zu trainierende Parameter (beispielsweise 'check_char'"check_char""check_char""check_char""check_char""check_char") müssen vor dem Training manuell festgelegt werden.

- Soll über mehrere Bilder trainiert werden, ist der Operator find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode mehrfach nacheinander aufzurufen.

- Pro Bild sollte nur ein Barcode des gewählten Typs sichtbar sein. Es sollten keine Muster vorhanden sein die vom Barcode-Leser als Barcode des gewählten Typs missinterpretiert werden könnten.

- Befinden sich im Trainingsbild mehrere Barcodes und soll aber nur über einen bestimmten Barcode trainiert werden, ist der Definitionsbereich des Bildes mit reduce_domainreduce_domainReduceDomainreduce_domainReduceDomainReduceDomain entsprechend einzuschränken.

- Sind in einer Anwendung alle Bilder sehr ähnlich, reicht i.d.R. ein Trainingsbild für die Parameter 'element_size_min'"element_size_min""element_size_min""element_size_min""element_size_min""element_size_min", 'element_size_max'"element_size_max""element_size_max""element_size_max""element_size_max""element_size_max", 'meas_thresh'"meas_thresh""meas_thresh""meas_thresh""meas_thresh""meas_thresh", 'meas_thresh_abs'"meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs" und 'max_diff_orient'"max_diff_orient""max_diff_orient""max_diff_orient""max_diff_orient""max_diff_orient".

Für das Training des Parameters 'orientation'"orientation""orientation""orientation""orientation""orientation" werden mindestens zwei Bilder benötigt, die den Barcode in seiner Minimum- und Maximum- Orientierung zeigen.

- Kann die Elementgröße variieren, sollten nach Möglichkeit im Training auch Bilder mit den kleinsten und den größten vorkommenden Elementen verwendet werden. Sollte dies nicht sichergestellt werden können, müssen die Grenzen für die Elementgröße nach dem Training von Hand gesetzt bzw. entsprechend modifiziert werden, oder die Elementgrößen werden vom Training ganz ausgenommen.

- Die Modellparameter werden beim ersten Training auf die Modelleigenschaften des im Bild gefundenen Barcodes eingeschränkt. Bei jedem weiteren Training werden sie, falls notwendig, so erweitert, dass neben den bisher trainierten Barcodes auch der neue Barcode vom Modell abgedeckt wird.

- Wurden genügend Bilder trainiert, so kann das Training beendet werden. Zuvor sollten jedoch die trainierten Parameter ausgelesen werden. Mit query_bar_code_paramsquery_bar_code_paramsQueryBarCodeParamsquery_bar_code_paramsQueryBarCodeParamsQueryBarCodeParams können die Namen der trainierten Parameter - aufgeteilt in spezifische und allgemeine Parameter - bestimmt werden und anschließend entsprechend mit get_bar_code_param_specificget_bar_code_param_specificGetBarCodeParamSpecificget_bar_code_param_specificGetBarCodeParamSpecificGetBarCodeParamSpecific und get_bar_code_paramget_bar_code_paramGetBarCodeParamget_bar_code_paramGetBarCodeParamGetBarCodeParam ausgelesen werden.

Zum Beenden des Trainings werden alle trainierten Parameter durch einen Aufruf des Operators set_bar_code_paramset_bar_code_paramSetBarCodeParamset_bar_code_paramSetBarCodeParamSetBarCodeParam mit den Parametern GenParamNamesGenParamNamesGenParamNamesGenParamNamesGenParamNamesgenParamNames = 'train'"train""train""train""train""train" und GenParamValuesGenParamValuesGenParamValuesGenParamValuesGenParamValuesgenParamValues = '~all'"~all""~all""~all""~all""~all" aus dem Training genommen.

Alternativ kann auch einfach das existierende Barcode-Modell durch den Operator clear_bar_code_modelclear_bar_code_modelClearBarCodeModelclear_bar_code_modelClearBarCodeModelClearBarCodeModel geschlossen werden.

- Während des Trainings sollte der Wert eines Trainingsparameters nicht durch einen Aufruf von set_bar_code_paramset_bar_code_paramSetBarCodeParamset_bar_code_paramSetBarCodeParamSetBarCodeParam oder set_bar_code_param_specificset_bar_code_param_specificSetBarCodeParamSpecificset_bar_code_param_specificSetBarCodeParamSpecificSetBarCodeParamSpecific explizit gesetzt werden. Falls das gemacht wird, werden die gesamten internen Trainingsdaten zurückgesetzt und das Training startet mit dem nächsten Aufruf von find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode von vorne.

- Kann der zu trainierende Barcode nicht gelesen werden, erzeugt dies keine gesonderte Fehlermeldung, sondern es sind lediglich die Ergebnislisten (DecodedDataStrings, SymbolRegions) leer. Die Modellparameter (insbesondere die trainierten Parameter) werden in diesem Fall nicht modifiziert.

- Timeouts sind während des Trainings deaktiviert.

Sonstiges:

'timeout'"timeout""timeout""timeout""timeout""timeout":

Mit Hilfe dieses Parameters ist es möglich, dass find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode nach einer definierten Zeit (in ms) abbricht. Dies ist vor allem dann nützlich, wenn maximale Zykluszeiten eingehalten werden müssen. Alle bis zu diesem Abbruch gewonnenen Ergebnisse sind anschließend verfügbar und können mit get_bar_code_resultget_bar_code_resultGetBarCodeResultget_bar_code_resultGetBarCodeResultGetBarCodeResult abgerufen werden. Werden Werte kleiner oder gleich Null übergeben, wird der Timeout deaktiviert (Default).

Die zeitliche Genauigkeit des Timeouts liegt bei ca. 10 ms. Sie hängt von vielen Faktoren ab, u.a. von der Geschwindigkeit des Rechners und dem 'timer_mode'"timer_mode""timer_mode""timer_mode""timer_mode""timer_mode", der über set_systemset_systemSetSystemset_systemSetSystemSetSystem gesetzt wurde.

find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode wirft keinen Fehler, falls ein Timeout auftritt. Um zu prüfen, ob find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode abgebrochen wurde, kann der Parameter 'timeout_occurred'"timeout_occurred""timeout_occurred""timeout_occurred""timeout_occurred""timeout_occurred" mit get_bar_code_resultget_bar_code_resultGetBarCodeResultget_bar_code_resultGetBarCodeResultGetBarCodeResult abgefragt werden.

Im Trainingsmodus von find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode wird der Timeout ignoriert.

Typische Werte: ['false'"false""false""false""false""false", 20 .. 100]

Standardwert: 'false'"false""false""false""false""false"

'persistence'"persistence""persistence""persistence""persistence""persistence":

Steuert, ob bestimmte Zwischenergebnisse bei der Symbolsuche mit find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode temporär oder persistent im Modell gespeichert werden sollen. Zur Zeit ist es erforderlich 'persistence'"persistence""persistence""persistence""persistence""persistence" einzuschalten ('persistence'"persistence""persistence""persistence""persistence""persistence" = 1), wenn die Barcode Druckqualität bewertet werden muss (get_bar_code_resultget_bar_code_resultGetBarCodeResultget_bar_code_resultGetBarCodeResultGetBarCodeResult mit Parameter 'quality_isoiec15416'"quality_isoiec15416""quality_isoiec15416""quality_isoiec15416""quality_isoiec15416""quality_isoiec15416") oder die Dekodierungs- Scanlinien inspiziert werden müssen (get_bar_code_objectget_bar_code_objectGetBarCodeObjectget_bar_code_objectGetBarCodeObjectGetBarCodeObject mit Parameter 'scanlines_all'"scanlines_all""scanlines_all""scanlines_all""scanlines_all""scanlines_all" oder 'scanlines_valid'"scanlines_valid""scanlines_valid""scanlines_valid""scanlines_valid""scanlines_valid"). Mit Einschalten von 'persistence'"persistence""persistence""persistence""persistence""persistence" steigt der Speicherbedarf für den Barcode-Leser allerdings auch.

Werte: [0, 1]

Standardwert: 0

Achtung

Ein Barcode-Modell BarCodeHandleBarCodeHandleBarCodeHandleBarCodeHandleBarCodeHandlebarCodeHandle kann nur von einem Thread aus verwendet werden. Verschiedene Barcode-Modelle können dagegen in unterschiedlichen Threads genutzt werden.

Parallelisierung

Parameter

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

Handle des zu verwendenden Barcode-Modells.

GenParamNamesGenParamNamesGenParamNamesGenParamNamesGenParamNamesgenParamNames (input_control)  attribute.name(-array) HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Namen der generischen Parameter, die für den Barcode eingestellt werden sollen.

Defaultwert: 'element_size_max' "element_size_max" "element_size_max" "element_size_max" "element_size_max" "element_size_max"

Werteliste: 'check_char'"check_char""check_char""check_char""check_char""check_char", 'composite_code'"composite_code""composite_code""composite_code""composite_code""composite_code", 'element_height_min'"element_height_min""element_height_min""element_height_min""element_height_min""element_height_min", 'element_size_max'"element_size_max""element_size_max""element_size_max""element_size_max""element_size_max", 'element_size_min'"element_size_min""element_size_min""element_size_min""element_size_min""element_size_min", 'element_size_variable'"element_size_variable""element_size_variable""element_size_variable""element_size_variable""element_size_variable", 'max_diff_orient'"max_diff_orient""max_diff_orient""max_diff_orient""max_diff_orient""max_diff_orient", 'meas_thresh'"meas_thresh""meas_thresh""meas_thresh""meas_thresh""meas_thresh", 'meas_thresh_abs'"meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs""meas_thresh_abs", 'min_identical_scanlines'"min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines""min_identical_scanlines", 'num_scanlines'"num_scanlines""num_scanlines""num_scanlines""num_scanlines""num_scanlines", 'orientation'"orientation""orientation""orientation""orientation""orientation", 'orientation_tol'"orientation_tol""orientation_tol""orientation_tol""orientation_tol""orientation_tol", 'persistence'"persistence""persistence""persistence""persistence""persistence", 'quiet_zone'"quiet_zone""quiet_zone""quiet_zone""quiet_zone""quiet_zone", 'slanted'"slanted""slanted""slanted""slanted""slanted", 'start_stop_tolerance'"start_stop_tolerance""start_stop_tolerance""start_stop_tolerance""start_stop_tolerance""start_stop_tolerance", 'stop_after_result_num'"stop_after_result_num""stop_after_result_num""stop_after_result_num""stop_after_result_num""stop_after_result_num", 'timeout'"timeout""timeout""timeout""timeout""timeout", 'train'"train""train""train""train""train", 'upce_encodation'"upce_encodation""upce_encodation""upce_encodation""upce_encodation""upce_encodation"

GenParamValuesGenParamValuesGenParamValuesGenParamValuesGenParamValuesgenParamValues (input_control)  attribute.value(-array) HTupleHTupleHTupleVARIANTHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*) (double / Hlong / BSTR) (double / Hlong / char*)

Werte der generischen Parameter, die für den Barcode eingestellt werden sollen.

Defaultwert: 8

Wertevorschläge: 0, 0.1, 1, 1.5, 2, 8, 32, 45, 'true'"true""true""true""true""true", 'false'"false""false""false""false""false", 'present'"present""present""present""present""present", 'absent'"absent""absent""absent""absent""absent", 'none'"none""none""none""none""none", 'CC-A/B'"CC-A/B""CC-A/B""CC-A/B""CC-A/B""CC-A/B", 'auto'"auto""auto""auto""auto""auto", 'high'"high""high""high""high""high", 'low'"low""low""low""low""low", 'ucc-12'"ucc-12""ucc-12""ucc-12""ucc-12""ucc-12", 'zero-suppressed'"zero-suppressed""zero-suppressed""zero-suppressed""zero-suppressed""zero-suppressed"

Ergebnis

set_bar_code_paramset_bar_code_paramSetBarCodeParamset_bar_code_paramSetBarCodeParamSetBarCodeParam 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

Nachfolger

find_bar_codefind_bar_codeFindBarCodefind_bar_codeFindBarCodeFindBarCode

Alternativen

set_bar_code_param_specificset_bar_code_param_specificSetBarCodeParamSpecificset_bar_code_param_specificSetBarCodeParamSpecificSetBarCodeParamSpecific

Modul

Bar Code


KlassenKlassenKlassenKlassen | | | | Operatoren