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.
MaxDistAbs
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.
MaxDistRel
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.
Mode
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.
Contours
(input_object) xld_cont-array →
object
Eingabe-Konturen.
UnionContours
(output_object) xld_cont-array →
object
Ausgabe-Konturen.
MaxDistAbs
(input_control) real →
(real)
Maximaler Abstand der Endpunkte der Konturen.
Defaultwert: 10.0
Typischer Wertebereich: 0.0
≤
MaxDistAbs
MaxDistRel
(input_control) real →
(real)
Maximaler Abstand der Endpunkte der Konturen relativ zur Länge der zu längeren Kontur.
Defaultwert: 1.0
Typischer Wertebereich: 0.0
≤
MaxDistRel
Mode
(input_control) string →
(string)
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