F_VN_OCRExp

F_VN_OCRExp 1:

Detects and recognizes characters in a binary image (white characters on black background). (expert function)

Syntax

Definition:

FUNCTION F_VN_OCRExp : HRESULT
VAR_INPUT
    ipSrcImage      : ITcVnImage;
    eModel          : ULINT;
    ipCharacters    : Reference To ITcVnContainer;
    sPattern        : STRING;
    eOcrOptions     : UDINT;
    ipBoundingBoxes : Reference To ITcVnContainer;
    ipConfidences   : Reference To ITcVnContainer;
    hrPrev          : HRESULT;
END_VAR
VAR_OUTPUT
    fMinConfidence  : REAL;
END_VAR

F_VN_OCRExp 2: Inputs

Name

Type

Description

ipSrcImage

ITcVnImage

Source image (USINT, 1 channel, binary)

eModel

ULINT

Selection of OCR model types (ETcVnOcrModelType)

ipCharacters

Reference To ITcVnContainer

Returns the recognized characters (ContainerType_Vector_String_SINT)

sPattern

STRING

String pattern containing the format in which characters are presented

eOcrOptions

UDINT

Specifies which options must be applied to the function (ETcVnOcrOptions)

ipBoundingBoxes

Reference To ITcVnContainer

Returns the corresponding bounding boxes of the recognized characters (ContainerType_Vector_TcVnRectangle_DINT, optional, set to 0 if not required)

ipConfidences

Reference To ITcVnContainer

Returns the corresponding classification confidences of the recognized characters (ContainerType_Vector_REAL, optional, set to 0 if not required)

hrPrev

HRESULT

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

F_VN_OCRExp 3: Outputs

Name

Type

Description

fMinConfidence

REAL

Returns the minimum value of the confidences

F_VN_OCRExp 4: Return value

HRESULT

Weiterführende Informationen

Die Funktion F_VN_OCRExp ist die Expert-Variante von F_VN_OCR. Sie enthält zusätzliche Parameter.

Parameter

Eingangsbild

Das Eingangsbild was an ipSrcImage übergeben wird, muss ein 1-kanaliges Binärbild sein. Es sind nur weiße Zeichen auf schwarzem Hintergrund zulässig.

Modell

Die Modell-Typen von ETcVnOcrModelType, die bei einem Funktionsaufruf zur Klassifizierung der Zeichen verwendet werden sollen, müssen an eModel übergeben werden. Um mehrere Modelle mit einem Funktionsaufruf verwenden zu können, muss ein Zeichenkettenmuster über sPattern angegeben werden. Die Modelle können mit einem OR verkettet werden.

Um die einzelnen Modelle verwenden zu können, müssen diese zuvor mit dem Baustein FB_VN_InitializeFunction initialisiert werden.

Erkannte Zeichen

Die erkannten Zeichen werden über die Referenz ipCharacters zurückgegeben.

Zeichenkettenmuster

Über sPattern kann ein Zeichenkettenmuster, mit dem erwarteten Format der zu erkennenden Zeichenkette, übergeben werden.

Unterstützte Formatierungen und deren Bedeutung:

Optionen

Mit eOcrOptions können Optionen (ETcVnOcrOptions) angegeben werden, die die Funktionsweise und Ergebnisausgabe beeinflussen. Wenn keine Optionen benötigt werden, muss eine 0 übergeben werden.

Bounding Boxes

Über die Referenz ipBoundingBoxes können optional die entsprechenden Bounding Boxes der erkannten Zeichen zurückgegeben werden. Wenn keine Bounding Boxes benötigt werden, kann der Wert 0 übergeben werden.

Konfidenzen

Über die Referenz ipConfidences können optional die entsprechenden Klassifizierungskonfidenzen der erkannten Zeichen zurückgegeben werden. Wenn keine Konfidenzen benötigt werden, kann der Wert 0 übergeben werden.

Minimale Konfidenz

Der optionale Rückgabewert fMinConfidence gibt den minimalen Konfidenz-Wert aller gefundenen Zeichen zurück.

Anwendung

Ein Aufruf der OCRExp-Funktion, mit zwei Modellen zur Erkennung von Zahlen und Großbuchstaben, mit anschließendem String-Export sieht z.B. so aus:

sPattern := 'dd!uuu!dddd'; // e.g. 02-FEB-2024

hr := F_VN_OCRExp(
    ipSrcImage      := ipBinaryImage,
    eModel          := TCVN_OMT_NUMBERS OR TCVN_OMT_UCLETTERS,
    ipCharacters    := ipCharactersResults,
    sPattern        := sPattern,
    eOcrOptions     := eOcrOptions,
    ipBoundingBoxes := ipBoundingBoxes,
    ipConfidences   := ipConfidences,
    hrPrev          := hr,
    fMinConfidence  => fMinConfidence);

// Export character to string
hr := F_VN_ExportSubContainer_String(ipCharactersResults, 0, sText, 255, hr);

// Get the bounding box of the first element
hr := F_VN_GetAt_TcVnRectangle_DINT(ipBoundingBoxes, stRectangle, 0, hr);

// Get the Confidence value of the first element
hr := F_VN_GetAt_REAL(ipConfidences, fConfidence, 0, hr);

Zur Auswertung der Konfidenz-Werte oder zum Zeichnen von Bounding Boxen kann über GetAt auf einzelne Elemente der Container zugegriffen werden. Wenn man jedoch auf mehrere oder alle Elemente eines Containers zugreifen möchte, empfiehlt es sich, eine Schleife zu programmieren oder den ipConfidences Container komplett als Array zu exportieren.

Required License

TC3 Vision OCR

System Requirements

Development environment

Target platform

PLC libraries to include

TwinCAT V3.1. 4024.44 or later

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

Tc3_Vision