Morphologische Operatoren
In diesem Beispiel wenden Sie morphologische Operatoren auf ein Bild an. Dazu nutzen Sie:
Erklärung
Mit einem morphologischen Operator lassen sich Objekte auf einem Bild nach bestimmten Regeln verändern. Meistens werden morphologische Operatoren auf binäre Bilder angewandt; grundsätzlich ist jedoch auch die Anwendung auf Grauwertbilder möglich. Durch kombinierte Operatoren wie das OPENING
und das CLOSING
können z. B. fehlende Teile in Objekten ergänzt und kleine Ausreißer entfernt werden.
Variablen
ipElement : ITcVnImage;
eSEShape : ETcVnStructuringElementShape := TCVN_SES_RECTANGLE;
aSESize : ARRAY [0..1] OF UDINT := [29, 29];
eOperator : ETcVnMorphologicalOperator := TCVN_MO_OPENING;
Programm
Ein morphologischer Operator benötigt ein Strukturelement, um seinen Einflussbereich für jedes Pixel festzulegen. Sie können dafür aus verschiedenen Formen aus dem Enum ETcVnStructuringElementShape und in unterschiedlicher Größe auswählen.
hr := F_VN_CreateStructuringElement(
ipStructuringElement := ipElement,
eShape := eSEShape,
nWidth := aSESize[0],
nHeight := aSESize[1],
hrPrev := hr);
Daraufhin legen Sie eine morphologische Operation mittels des Enums ETcVnMorphologicalOperator fest und wenden diese mit dem erstellten Strukturelement auf das Eingangsbild an.
hr := F_VN_MorphologicalOperator(
ipSrcImage := ipImageIn,
ipDestImage := ipImageRes,
eOperator := eOperator,
ipStructuringElement := ipElement,
hrPrev := hr);
Ein morphologisches Öffnen mit einem rechteckigen Strukturelement der Größe [31; 31] und vorherigem Schwellwert erzeugt z. B. folgendes Ergebnis. Es entfernt kleinere bzw. schmalere Objekte aus dem Bild.
Eingangsbild | Ergebnisbild |
Hinweis | |
Hohe Ausführungsdauer Je nach Größe des Eingangsbilds und des Strukturelements kann die Ausführung des morphologischen Operators sehr lange im Vergleich zu anderen Funktionen dauern. Achten Sie darauf, dass Sie die Zykluszeit entsprechend einstellen und ggfs. einen Watchdog verwenden! |