F_VN_DrawContours

F_VN_DrawContours 1:

Draws a single point set or multiple point sets that are interpreted as contours.

Syntax

Definition:

FUNCTION F_VN_DrawContours : HRESULT
VAR_INPUT
    ipContours    : ITcVnContainer;
    nContourIndex : DINT;
    ipDestImage   : ITcVnImage;
END_VAR
VAR_IN_OUT
    aColor        : TcVnVector4_LREAL;
END_VAR
VAR_INPUT
    nThickness    : DINT;
    hrPrev        : HRESULT;
END_VAR

F_VN_DrawContours 2: Inputs

Name

Type

Description

ipContours

ITcVnContainer

Single contour (ContainerType_Vector_TcVnPoint2_DINT) or multiple contours (ContainerType_Vector_Vector_TcVnPoint2_DINT)

nContourIndex

DINT

Index of a specific contour to be drawn (if negative, all contours within the container are drawn)

ipDestImage

ITcVnImage

Destination image

nThickness

DINT

Line thickness (if negative, the contours are filled)

hrPrev

HRESULT

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

F_VN_DrawContours 3: In/Outputs

Name

Type

Description

aColor

TcVnVector4_LREAL

Color

F_VN_DrawContours 4: Return value

HRESULT

Weiterführende Informationen

Die Funktion F_VN_DrawContours zeichnet Konturen in das Zielbild. Eine Kontur wird dabei aus einer Menge an Punkten beschrieben, welche in einem Container gespeichert sind. Dabei ist zu beachten, dass nur ganzzahlige Konturpunkte gezeichnet werden können, sodass der Container vom Typ ContainerType_Vector_TcVnPoint2_DINT sein muss. Werden die Punkte über Fließkommazahlen beschrieben, so kann mit F_VN_ConvertContainerType eine Konvertierung der Punkte erfolgen.

Neben einem Container mit einer Kontur kann der Funktion auch ein Container mit mehreren Konturen übergeben werden. Dieser ist dann vom Typ ContainerType_Vector_Vector_TcVnPoint2_DINT. Welche Kontur gezeichnet werden soll, wird über die Eingangsvariable nContourIndex angegeben. Sollen alle Konturen gezeichnet werden, muss nContourIndex auf einen negativen Wert gesetzt werden. Es ist effizienter, einen ganzen Container von Konturen auf einmal zu zeichnen (setzen von nContourIndex auf einen negativen Wert), als sie nacheinander zu zeichnen, indem Sie die Funktion wiederholt innerhalb einer Schleife aufrufen.

Expert-Parameter

Die Expert-Variante F_VN_DrawContoursExp enthält zusätzliche Parameter.

Anwendung

Das Malen von allen Konturen einer Kontur-Liste ipContours mit einer roten, 5px starken Linie sieht z. B. so aus:

hr := F_VN_DrawContours(
    ipContours      :=  ipContours,
    nContourIndex   :=  -1,
    ipDestImage     :=  ipImageRes,
    aColor          :=  aColorRed,
    nThickness      :=  5,
    hrPrev          :=  hr
);

Typische Funktionen die Konturen vom Typ ContainerType_Vector_Vector_TcVnPoint2_DINT zurückgeben

Beispiele

Required License

TC3 Vision Base

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