F_VN_LocateEllipse

F_VN_LocateEllipse 1:

Locate an ellipse, using an interpolation method for locating the edges.
Can use available TwinCAT Job Tasks for executing parallel code regions.
Can return partial results when canceled by Watchdog.

Syntax

Definition:

FUNCTION F_VN_LocateEllipse : HRESULT
VAR_INPUT
    ipSrcImage     : ITcVnImage;
END_VAR
VAR_IN_OUT
    stEllipse      : TcVnRotatedRectangle;
    aCenter        : TcVnPoint2_REAL;
END_VAR
VAR_INPUT
    fSearchRadius  : REAL;
    eEdgeDirection : ETcVnEdgeDirection;
    fMinStrength   : REAL;
    hrPrev         : HRESULT;
END_VAR

F_VN_LocateEllipse 2: Inputs

Name

Type

Description

ipSrcImage

ITcVnImage

Source image (1 channel)

fSearchRadius

REAL

Radius around aCenter to search for edges (aCenter + fSearchRadius in all directions must be inside image borders!)

eEdgeDirection

ETcVnEdgeDirection

Specification of the edge direction to search for (from center to outside ellipse)

fMinStrength

REAL

Specification of the minimum strength (intensity difference) of the edge to search for

hrPrev

HRESULT

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

F_VN_LocateEllipse 3: In/Outputs

Name

Type

Description

stEllipse

TcVnRotatedRectangle

Returns the detected ellipse

aCenter

TcVnPoint2_REAL

The expected ellipse center

F_VN_LocateEllipse 4: Return value

HRESULT

Weiterführende Informationen

Die Funktion F_VN_LocateEllipse lokalisiert und misst eine Ellipse. Sie basiert auf der Kantenlokalisierung und nutzt übliche Parameter. Sie gibt die lokalisierte Ellipse als Struktur vom Typ TcVnRotatedRectangle (Mittelpunkt, Größe und Winkel) zurück.

Parameter

Eingangsbild

Das Eingangsbild ipSrcImage muss ein 1-kanaliges Grauwertbild sein.

Ellipse (Rückgabewert)

Der Parameter stEllipse liefert die lokalisierte Ellipse als Struktur vom Typ TcVnRotatedRectangle zurück (Mittelpunkt, Größe und Winkel).

Suchkreis

Der kreisförmige Suchbereich wird über den erwarteten Mittelpunkt aCenter und sowie einen Suchradius fSearchRadius definiert. Der Suchradius sollte etwas größer als der erwartete Ellipsenradius festgelegt werden, um die Ellipse sicher zu lokalisieren.

Parameter zur Kantenlokalisierung

Die restlichen Parameter sind ausführlich im Kapitel Kantenlokalisierung erklärt.

Expert-Parameter

Die Expert-Variante F_VN_LocateEllipse(Exp) enthält zusätzliche Parameter.

Anwendung

Die Lokalisierung und Vermessung einer Ellipse mit einem geschätzten Mittelpunkt von [360, 240] und einem Radius von 100px sieht z. B: so aus:

VAR
    aGuessedCenter          :   TcVnPoint2_REAL := [360, 240];
    fGuessedRadius          :   REAL := 100;
END_VAR

hr := F_VN_LocateEllipseExp(
    ipSrcImage              :=  ipImageIn,
    stEllipse               :=  stEllipse,
    aCenterPoint            :=  aGuessedCenter,
    fSearchRadius           :=  (fGuessedRadius + 15), // increase search radius to make sure ellipse is found!
    eEdgeDirection          :=  TCVN_ED_LIGHT_TO_DARK,
    fMinStrength            :=  fMinStrength,
    hrPrev                  :=  hr
);

Die Eigenschaften der lokalisierten Ellipse können dann über die Variablen stEllipse.aCenter, stEllipse.stSize und stEllipse.fAngle abgerufen werden. Zudem kann die Ellipse mit der Funktion F_VN_DrawEllipse visualisiert werden:

hr := F_VN_DrawEllipse(stEllipse, ipImageRes, aColorGreen, 5, hr);

Beispiele

Verwandte Funktionen

Required License

TC3 Vision Metrology 2D

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