union_adjacent_contours_xldunion_adjacent_contours_xldUnionAdjacentContoursXldUnionAdjacentContoursXld (Operator)

Name

union_adjacent_contours_xldunion_adjacent_contours_xldUnionAdjacentContoursXldUnionAdjacentContoursXld — Vereinigen von Konturen, deren Endpunkte nah beieinander liegen.

Signatur

union_adjacent_contours_xld(Contours : UnionContours : MaxDistAbs, MaxDistRel, Mode : )

Herror union_adjacent_contours_xld(const Hobject Contours, Hobject* UnionContours, double MaxDistAbs, double MaxDistRel, const char* Mode)

Herror T_union_adjacent_contours_xld(const Hobject Contours, Hobject* UnionContours, const Htuple MaxDistAbs, const Htuple MaxDistRel, const Htuple Mode)

void UnionAdjacentContoursXld(const HObject& Contours, HObject* UnionContours, const HTuple& MaxDistAbs, const HTuple& MaxDistRel, const HTuple& Mode)

HXLDCont HXLDCont::UnionAdjacentContoursXld(double MaxDistAbs, double MaxDistRel, const HString& Mode) const

HXLDCont HXLDCont::UnionAdjacentContoursXld(double MaxDistAbs, double MaxDistRel, const char* Mode) const

HXLDCont HXLDCont::UnionAdjacentContoursXld(double MaxDistAbs, double MaxDistRel, const wchar_t* Mode) const   (Nur Windows)

static void HOperatorSet.UnionAdjacentContoursXld(HObject contours, out HObject unionContours, HTuple maxDistAbs, HTuple maxDistRel, HTuple mode)

HXLDCont HXLDCont.UnionAdjacentContoursXld(double maxDistAbs, double maxDistRel, string mode)

Beschreibung

Der Operator union_adjacent_contours_xldunion_adjacent_contours_xldUnionAdjacentContoursXldUnionAdjacentContoursXldUnionAdjacentContoursXld verbindet aus einer Menge von Konturen (ContoursContoursContoursContourscontours) 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 UnionContoursUnionContoursUnionContoursUnionContoursunionContours 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 MaxDistAbsMaxDistAbsMaxDistAbsMaxDistAbsmaxDistAbs übergebenen absoluten Abstand noch einen relativen Abstand, der sich aus der Länge der längeren der beiden Konturen multipliziert mit dem Parameter MaxDistRelMaxDistRelMaxDistRelMaxDistRelmaxDistRel 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.

MaxDistAbsMaxDistAbsMaxDistAbsMaxDistAbsmaxDistAbs

Der Parameter MaxDistAbsMaxDistAbsMaxDistAbsMaxDistAbsmaxDistAbs 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.

image/svg+xml a
MaxDistRelMaxDistRelMaxDistRelMaxDistRelmaxDistRel

Der Parameter MaxDistRelMaxDistRelMaxDistRelMaxDistRelmaxDistRel 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 MaxDistAbsMaxDistAbsMaxDistAbsMaxDistAbsmaxDistAbs) durch die Länge b der Referenzkontur geteilt.

image/svg+xml a b
ModeModeModeModemode

Mit Hilfe des Parameters ModeModeModeModemode lässt sich steuern, wie mit eventuellen Attributen der Eingabekonturen umgegangen werden soll. Konturattribute werden beispielsweise vom Operator edges_sub_pixedges_sub_pixEdgesSubPixEdgesSubPixEdgesSubPix gesetzt und beschreiben dort für jeden Konturpunkt die lokale Orientierung, die Kantenstärke und die Gradientenrichtung. Mit der Defaulteinstellung 'attr_keep'"attr_keep""attr_keep""attr_keep""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'"attr_forget""attr_forget""attr_forget""attr_forget" angegeben werden muss. Voraussetzung dafür ist natürlich, dass für die weitere Auswertung die Attribute nicht mehr benötigt werden.

Ausführungsinformationen

Parameter

ContoursContoursContoursContourscontours (input_object)  xld_cont-array objectHXLDContHXLDContHobject

Eingabe-Konturen.

UnionContoursUnionContoursUnionContoursUnionContoursunionContours (output_object)  xld_cont-array objectHXLDContHXLDContHobject *

Ausgabe-Konturen.

MaxDistAbsMaxDistAbsMaxDistAbsMaxDistAbsmaxDistAbs (input_control)  real HTupleHTupleHtuple (real) (double) (double) (double)

Maximaler Abstand der Endpunkte der Konturen.

Defaultwert: 10.0

Typischer Wertebereich: 0.0 ≤ MaxDistAbs MaxDistAbs MaxDistAbs MaxDistAbs maxDistAbs

MaxDistRelMaxDistRelMaxDistRelMaxDistRelmaxDistRel (input_control)  real HTupleHTupleHtuple (real) (double) (double) (double)

Maximaler Abstand der Endpunkte der Konturen relativ zur Länge der zu längeren Kontur.

Defaultwert: 1.0

Typischer Wertebereich: 0.0 ≤ MaxDistRel MaxDistRel MaxDistRel MaxDistRel maxDistRel

ModeModeModeModemode (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Modus für die Behandlung der Konturattribute

Defaultwert: 'attr_keep' "attr_keep" "attr_keep" "attr_keep" "attr_keep"

Werteliste: 'attr_forget'"attr_forget""attr_forget""attr_forget""attr_forget", 'attr_keep'"attr_keep""attr_keep""attr_keep""attr_keep"

Vorgänger

split_contours_xldsplit_contours_xldSplitContoursXldSplitContoursXldSplitContoursXld, select_contours_xldselect_contours_xldSelectContoursXldSelectContoursXldSelectContoursXld

Alternativen

union_collinear_contours_xldunion_collinear_contours_xldUnionCollinearContoursXldUnionCollinearContoursXldUnionCollinearContoursXld, union_collinear_contours_ext_xldunion_collinear_contours_ext_xldUnionCollinearContoursExtXldUnionCollinearContoursExtXldUnionCollinearContoursExtXld, union_cocircular_contours_xldunion_cocircular_contours_xldUnionCocircularContoursXldUnionCocircularContoursXldUnionCocircularContoursXld, union_straight_contours_xldunion_straight_contours_xldUnionStraightContoursXldUnionStraightContoursXldUnionStraightContoursXld, union_cotangential_contours_xldunion_cotangential_contours_xldUnionCotangentialContoursXldUnionCotangentialContoursXldUnionCotangentialContoursXld

Siehe auch

edges_sub_pixedges_sub_pixEdgesSubPixEdgesSubPixEdgesSubPix, threshold_sub_pixthreshold_sub_pixThresholdSubPixThresholdSubPixThresholdSubPix, gen_polygons_xldgen_polygons_xldGenPolygonsXldGenPolygonsXldGenPolygonsXld, split_contours_xldsplit_contours_xldSplitContoursXldSplitContoursXldSplitContoursXld, select_contours_xldselect_contours_xldSelectContoursXldSelectContoursXldSelectContoursXld, get_contour_xldget_contour_xldGetContourXldGetContourXldGetContourXld, get_contour_attrib_xldget_contour_attrib_xldGetContourAttribXldGetContourAttribXldGetContourAttribXld

Modul

Foundation