| Operatoren |
close_edges_length — Schließen von Kanten gemäß Amplitudenbild.
close_edges_length(Edges, Gradient : ClosedEdges : MinAmplitude, MaxGapLength : )
close_edges_length schließt die von einem Kantendetektor gelieferten Kanten zu Konturen. Als Eingabe erwartet die Routine also neben den Kanten (Edges) auch ein Amplitudenbild (Gradient), wie es beispielsweise die Routinen edges_image oder sobel_amp als Ergebnis liefern.
Der Konturschluss erfolgt in zwei Schritten: Zunächst werden ein Pixel große Lücken in den Eingabekonturstücken geschlossen und isolierte Kantenpunkte eliminiert. Im zweiten Schritt werden dann offene Konturen um maximal MaxGapLength verlängert, bis entweder die Kontur geschlossen ist oder kein Fortsetzungspunkt mit ausreichend signifikantem Gradienten mehr gefunden werden kann. Ein Gradientenwert gilt dabei als signifikant, wenn er größer oder gleich MinAmplitude ist. Kandidaten für den nächsten Fortsetzungspunkt sind der Nachbarpunkt in Richtung der Kontur (gemäß Gradient im aktuellen Endpunkt) sowie die beiden angrenzenden Nachbarpunkte (8er Nachbarschaft). Für jeden dieser drei potentiellen Fortsetzungspunkte wird die Summe aus dem eigenen Gradienten und dem maximalen Gradienten der nächsten drei möglichen Fortsetzungspunkte gebildet (look ahead der Länge 1). Der Punkt mit maximaler Summe wird dann als Fortsetzungspunkt ausgewählt.
Region mit ein Pixel breiten Kanten.
Kanten-Amplitudenbild.
Ausgaberegion (geschlossene Kanten).
Mindestamplitude für Kanten.
Defaultwert: 16
Wertevorschläge: 5, 8, 10, 12, 16, 20, 25, 30, 40, 50
Typischer Wertebereich: 1 ≤ MinAmplitude ≤ 255
Minimale Schrittweite: 1
Empfohlene Schrittweite: 1
Restriktion: MinAmplitude >= 0
Maximale Anzahl von Punkten, um die die Kanten verlängert werden.
Defaultwert: 3
Wertevorschläge: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 15, 20, 30, 40, 50, 70, 100
Typischer Wertebereich: 1 ≤ MaxGapLength ≤ 127
Minimale Schrittweite: 1
Empfohlene Schrittweite: 1
Restriktion: MaxGapLength > 0 && MaxGapLength <= 127
sobel_amp(Image,&EdgeAmp,"sum_abs",5); threshold(EdgeAmp,&EdgeRegion,40.0,255.0); skeleton(EdgeRegion,&ThinEdge); close_edges_length(ThinEdge,EdgeAmp,&CloseEdges,15,3);
Sind die Parameterwerte korrekt, dann liefert close_edges_length den Wert 2 (H_MSG_TRUE). Das Verhalten bei leerer Eingabe (keine Eingabebilder vorhanden) lässt sich mittels set_system('no_object_result',<Result>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
edges_image, sobel_amp, threshold, skeleton
close_edges, dilation1, closing
M. Üsbeck: „Untersuchungen zur echtzeitfähigen Segmentierung“; Studienarbeit, Bayerisches Forschungszentrum für Wissensbasierte Systeme (FORWISS), Erlangen, 1993.
Foundation
| Operatoren |