F_VN_FindContoursExp
Search for object contours in a binary image. (expert function)
Can use available TwinCAT Job Tasks for executing parallel code regions.
Can return partial results when canceled by Watchdog.
Syntax
Definition:
FUNCTION F_VN_FindContoursExp : HRESULT
VAR_INPUT
ipSrcImage : ITcVnImage;
ipContours : Reference To ITcVnContainer;
eRetrievalMode : ETcVnContourRetrievalMode;
eApproximationMethod : ETcVnContourApproximationMethod;
END_VAR
VAR_IN_OUT
aOffset : TcVnPoint;
END_VAR
VAR_INPUT
hrPrev : HRESULT;
END_VAR
Inputs
Name |
Type |
Description |
---|---|---|
ipSrcImage |
Source image (1 channel, binary) | |
ipContours |
Reference To ITcVnContainer |
Returns a container which is filled with the found contours (ContainerType_Vector_Vector_TcVnPoint2_DINT; The elements of this container are single contours. Non-zero interface pointers are reused.) |
eRetrievalMode |
Specifies which contours are retrieved and how their relationship is encoded | |
eApproximationMethod |
Contour encoding | |
hrPrev |
HRESULT indicating the result of previous operations (If SUCCEEDED(hrPrev) equals false, no operation is executed.) |
Weiterführende Informationen
Die Funktion F_VN_FindContoursExp
ist die Expert-Variante von F_VN_FindContours. Sie enthält zusätzliche Parameter.
Parameter
Eingangsbild
Das Eingangsbild ipSrcImage
muss genau 1 Kanal haben und sollte ein Binärbild sein.
Falls das Eingangsbild kein Binärbild ist, wird es intern mittels eines Schwellwerts von 1 in eins umgewandelt. Daher sollte das Eingangsbild manuell mit einem Schwellwert oder einer binären Segmentierung vorverarbeitet werden.
Liste an gefundenen Konturen (Rückgabewert)
Alle im Eingangsbild gefundenen Konturen werden in dem Container ipContours
zurückgegeben. Der Container ist ein zweidimensionales Array von Punkten und hat daher den Typ ContainerType_Vector_Vector_TcVnPoint2_DINT
.
Zurückgegeben werden die gefundenen Konturen in ipContours
. Dabei setzt sich jede Kontur aus einer Summe von Punkten zusammen, welche in einem Container zusammengefasst werden. Ein weiterer übergeordneter Container fasst dann nochmal alle Konturen zusammen.
Suchmodus (Expert)
Der Suchmodus eRetrievalMode
vom Typ ETcVnContourRetrievalMode legt fest, nach welchen Konturen gesucht wird:
TCVN_CRM_LIST
: Alle KonturenTCVN_CRM_EXTERNAL
: Nur Außenkonturen (wie bei F_VN_FindContours)TCVN_CRM_CONNECTED_COMPONENTS
: Konturen mit einer zweischichtigen HierarchieTCVN_CRM_TREE
: Alle Konturen; wird verwendet im Zusammenspiel mit der Funktion F_VN_FindContourHierarchyExp, um die Hierarchie der Konturen zu bestimmenTCVN_CRM_FLOODFILL
: Gibt die gefundenen Konturen mit Hilfe eines Floodfill-Algorithmus zurück (nur für DINT-Bilder verfügbar)
Approximationsart (Expert)
Die Approximationsart eApproximationMethod
vom Typ ETcVnContourApproximationMethod legt fest, ob die Konturen anhand aller umschließender Punkte beschrieben werden sollen (TCVN_CAM_NONE) oder ob die Anzahl der beschreibenden Punkte mit Hilfe von Approximation reduziert werden soll.
Offset (Expert)
Das Offset aOffset
legt konstante X-/Y-Werte fest, um die alle Konturpunkte verschoben werden. Dies kann hilfreich sein, wenn Konturen in einer ROI gesucht werden und ihre Positionen sich auf das Originalbild beziehen sollen.
Anwendung
Das Finden von allen Konturen im Eingangsbild, wobei die Konturpunkte nicht approximiert, aber in x-Richtung um 100px und in y-Richtung um -50px verschoben werden, sieht z. B. so aus:
VAR
aOffset : TcVnPoint := [100, -50];
END_VAR
hr := F_VN_FindContours(
ipSrcImage := ipImageIn,
ipContours := ipContours,
eRetrievalMode := TCVN_CRM_LIST,
eApproximationMethod := TCVN_CAM_NONE,
aOffset := aOffset,
hrPrev := hr
);
Beispiele
- Find Contour - Hierarchy & Retrieval Mode, zum Parameter ETcVnContourRetrievalMode
- Find Contour - Approximation Method, zum Parameter ETcVnContourApproximationMethod
- Find Contour anstelle der Blob Detection, zum Vergleich zur Funktion F_VN_DetectBlobs
Verwandte Funktionen
- F_VN_FindContours(Exp) zur allgemeinen Kontur-Findung
- F_VN_FindContourHierarchyExp mit Rückgabe der Hierarchie
- F_VN_DetectBlobs mit integrierter Filterung der Konturen
Required License
TC3 Vision Base
System Requirements
Development environment | Target platform | PLC libraries to include |
---|---|---|
TwinCAT V3.1.4024.59 or later | PC or CX (x64) with PL50, e.g. Intel 4-core Atom CPU | Tc3_Vision |