F_VN_DetectBarcodesWalsh

F_VN_DetectBarcodesWalsh 1:

Detect barcodes using the Walsh transform.
Can use available TwinCAT Job Tasks for executing parallel code regions.

Syntax

Definition:

FUNCTION F_VN_DetectBarcodesWalsh : HRESULT
VAR_INPUT
    ipSrcImage : ITcVnImage;
    ipBarcodes : Reference To ITcVnContainer;
    eOptions   : UDINT;
END_VAR
VAR_IN_OUT
    stParams   : TcVnParamsWalshBarcodeDetection;
END_VAR
VAR_INPUT
    hrPrev     : HRESULT;
END_VAR

 Inputs

Name

Type

Description

ipSrcImage

ITcVnImage

Source image

ipBarcodes

Reference To ITcVnContainer

Returns the code positions as rotated rectangles (ContainerType_Vector_TcVnRotatedRectangle; Non-zero interface pointers are reused.)

eOptions

UDINT

General flags controlling the detection process. (see ETcVnDetectBarcodesWalshOptions; default: TCVN_DBWO_HORIZONTAL)

hrPrev

HRESULT

HRESULT indicating the result of previous operations (If SUCCEEDED(hrPrev) equals false, no operation is executed.)

 In/Outputs

Name

Type

Description

stParams

TcVnParamsWalshBarcodeDetection

Parameters for configuring the individual detection steps.

 Return value

HRESULT

Weiterführende Informationen

Die Funktion F_VN_DetectBarcodesWalsh lokalisiert Barcodes (1D-Codes) in einem Bild auf Basis der Walsh-Transformation und gibt deren Position und Ausrichtung zurück. Im Gegensatz zu den Code-Reading Funktionen findet hierbei keine Dekodierung des Code-Inhalts statt, sondern die Funktion dient als eine Vorlokalisierung der Code-Regionen.

Diese Code-Regionen können im nächsten Schritt mit den entsprechenden Code-Reading Funktionen dekodiert werden. Aufgrund der vorgegebenen Region reduziert sich die Ausführungszeit, da die Lokalisierung des Codes auf einen kleinen Bildbereich beschränkt wird. Dies ermöglich auch die direkte Verwendung der Code-Reading Funktionen, die eine vorgegebene ROI benötigen.

Im Vergleich zur neuronalen Code-Erkennung mit F_VN_DetectCodesNeuralNetwork bietet die Walsh-basierte Detektion in vielen Szenarien eine kürzere Ausführungszeit, kann jedoch ausschließlich Barcodes (1D-Codes) erkennen. Ob die Funktion tatsächlich schneller ist, hängt von der Wahl der Parameter und vom Bildinhalt ab.

Parameter

ipSrcImage

Das Eingangsbild ipSrcImage muss vom Typ USINT oder SINT sein.

ipBarcodes

Der Parameter ipBarcodes gibt die lokalisierten Barcode-Positionen als Container vom Typ ContainerType_Vector_TcVnRotatedRectangle zurück.

eOptions

Der Parameter eOptions vom Typ ETcVnDetectBarcodesWalshOptions legt fest, in welchen Orientierungen nach Barcodes gesucht wird. Mehrere Werte lassen sich per OR-Verknüpfung kombinieren. Standardwert: TCVN_DBWO_HORIZONTAL.

Ist die Orientierung der Barcodes in der Anwendung bekannt, empfiehlt es sich, nur die relevante Option zu setzen, da jede zusätzliche Suchrichtung die Rechenzeit erhöht. TCVN_DBWO_ALL_DIRECTIONS bietet die höchste Robustheit bei unbekannter Orientierung, ist jedoch entsprechend rechenintensiver.

stParams

Der Parameter stParams vom Typ TcVnParamsWalshBarcodeDetection konfiguriert die einzelnen Schritte der Barcode-Detektion. Die Code-Parameter können mithilfe von F_VN_AnalyzeBarcodeWalsh automatisch aus einem Referenzbild geschätzt werden.

Code-Parameter:

Die folgenden Parameter beschreiben die charakteristischen Eigenschaften der zu erkennenden Barcodes und werden typischerweise durch F_VN_AnalyzeBarcodeWalsh geschätzt:

Filter-Parameter:

Die folgenden Parameter steuern Performance und Robustheit der Detektion

Required License

TC3 Vision Code Reading

System Requirements

Development environment

Target platform

PLC libraries to include

TwinCAT V3.1.4024.59 or later

PC or CX (x64) with min. PL50, e.g. Intel 4-core Atom CPU

Tc3_Vision