| Operatoren |
union_adjacent_contours_xld — Vereinigen von Konturen, deren Endpunkte nah beieinander liegen.
union_adjacent_contours_xld(Contours : UnionContours : MaxDistAbs, MaxDistRel, Mode : )
Der Operator union_adjacent_contours_xld verbindet aus einer Menge von Konturen (Contours) diejenigen miteinander, deren Endpunkte nah genug beieinander liegen. Die Vereinigung zweier Konturen ergibt sich aus der Konkatenation der Konturpunkte der beiden Eingangskonturen. Gegebenenfalls werden diese zuvor umgedreht, so dass die benachbarten Endpunkte in der resultierenden Punktliste direkte Nachbarn sind. Wenn die zu verbindenden Endpunkte aufeinander liegen, d.h. der Abstand zwischen den Konturen Null ist, wird dieser Punkt nur einmal in die Ergebniskontur eingetragen. Die Operation wird intern solange wiederholt, bis keine Konturen mehr entsprechend der Vorgaben vereinigt werden können. Als Ergebnis werden in UnionContours alle durch Vereinigung neu entstandenen Konturen sowie (unverändert) die Eingangskonturen, die mit keiner anderen Kontur verbunden werden konnten, zurückgegeben.
Parameter
Zwei Konturen werden an ihren benachbarten Endpunkten genau dann miteinander verbunden, wenn der Abstand zwischen diesen weder den in MaxDistAbs übergebenen absoluten Abstand noch einen relativen Abstand, der sich aus der Länge der längeren der beiden Konturen multipliziert mit dem Parameter MaxDistRel ergibt, überschreitet.
Die Reihenfolge, mit der die Konturen verbunden werden, ergibt sich in erster Linie aus den Abständen der benachbarten Endpunkte, wobei die am dichtesten benachbarten Konturen zuerst vereinigt werden. Bei gleichen Abständen wird zuerst das Konturpaar vereinigt, dessen kürzere Kontur länger ist als die kürzere Kontur des anderen Paares.
Der Parameter MaxDistAbs legt den maximalen Abstand zwischen zwei zu verbindenden Konturen fest. Der Abstand wird entlang der Regressionsgeraden der Referenzkontur gemessen. Es handelt sich also um die Länge der Projektion der Lücke zwischen den beiden Konturen auf die Regressionsgerade der Referenzkontur.
Der Parameter MaxDistRel legt den maximalen relativen Abstand zwischen zwei zu verbindenden Konturen fest. Zur Berechnung des relativen Abstands wird der absolute Abstand a (siehe die Beschreibung des Parameters MaxDistAbs) durch die Länge b der Referenzkontur geteilt.
Mit Hilfe des Parameters Mode lässt sich steuern, wie mit eventuellen Attributen der Eingabekonturen umgegangen werden soll. Konturattribute werden beispielsweise vom Operator edges_sub_pix gesetzt und beschreiben dort für jeden Konturpunkt die lokale Orientierung, die Kantenstärke und die Gradientenrichtung. Mit der Defaulteinstellung 'attr_keep' werden - falls vorhanden - die Attribute in die Ausgabekonturen übernommen und gegebenenfalls, wenn eine Kontur für die Vereinigung mit einer anderen gedreht werden muss, an die neue Richtung angepasst. Bei sehr vielen Eingabekonturen kann es aus Laufzeitgründen allerdings sinnvoll sein, die Attribute zu ignorieren, wofür als Wert 'attr_forget' angegeben werden muss. Voraussetzung dafür ist natürlich, dass für die weitere Auswertung die Attribute nicht mehr benötigt werden.
Eingabe-Konturen.
Ausgabe-Konturen.
Maximaler Abstand der Endpunkte der Konturen.
Defaultwert: 10.0
Typischer Wertebereich: 0.0 ≤ MaxDistAbs
Maximaler Abstand der Endpunkte der Konturen relativ zur Länge der zu längeren Kontur.
Defaultwert: 1.0
Typischer Wertebereich: 0.0 ≤ MaxDistRel
Modus für die Behandlung der Konturattribute
Defaultwert: 'attr_keep'
Werteliste: 'attr_forget', 'attr_keep'
split_contours_xld, select_contours_xld
union_collinear_contours_xld, union_collinear_contours_ext_xld, union_cocircular_contours_xld, union_straight_contours_xld, union_cotangential_contours_xld
edges_sub_pix, threshold_sub_pix, gen_polygons_xld, split_contours_xld, select_contours_xld, get_contour_xld, get_contour_attrib_xld
Foundation
| Operatoren |