Name
union_cotangential_contours_xldunion_cotangential_contours_xldUnionCotangentialContoursXldunion_cotangential_contours_xldUnionCotangentialContoursXldUnionCotangentialContoursXld — Vereinigen von kotangentialen Konturen.
Herror union_cotangential_contours_xld(const Hobject Contours, Hobject* UnionContours, double FitClippingLength, double FitLength, double MaxTangAngle, double MaxDist, double MaxDistPerp, double MaxOverlap, const char* Mode)
Herror T_union_cotangential_contours_xld(const Hobject Contours, Hobject* UnionContours, const Htuple FitClippingLength, const Htuple FitLength, const Htuple MaxTangAngle, const Htuple MaxDist, const Htuple MaxDistPerp, const Htuple MaxOverlap, const Htuple Mode)
Herror union_cotangential_contours_xld(Hobject Contours, Hobject* UnionContours, const HTuple& FitClippingLength, const HTuple& FitLength, const HTuple& MaxTangAngle, const HTuple& MaxDist, const HTuple& MaxDistPerp, const HTuple& MaxOverlap, const HTuple& Mode)
HXLDContArray HXLDContArray::UnionCotangentialContoursXld(const HTuple& FitClippingLength, const HTuple& FitLength, const HTuple& MaxTangAngle, const HTuple& MaxDist, const HTuple& MaxDistPerp, const HTuple& MaxOverlap, const HTuple& Mode) const
void UnionCotangentialContoursXld(const HObject& Contours, HObject* UnionContours, const HTuple& FitClippingLength, const HTuple& FitLength, const HTuple& MaxTangAngle, const HTuple& MaxDist, const HTuple& MaxDistPerp, const HTuple& MaxOverlap, const HTuple& Mode)
HXLDCont HXLDCont::UnionCotangentialContoursXld(double FitClippingLength, const HTuple& FitLength, double MaxTangAngle, double MaxDist, double MaxDistPerp, double MaxOverlap, const HString& Mode) const
HXLDCont HXLDCont::UnionCotangentialContoursXld(double FitClippingLength, double FitLength, double MaxTangAngle, double MaxDist, double MaxDistPerp, double MaxOverlap, const HString& Mode) const
HXLDCont HXLDCont::UnionCotangentialContoursXld(double FitClippingLength, double FitLength, double MaxTangAngle, double MaxDist, double MaxDistPerp, double MaxOverlap, const char* Mode) const
void HOperatorSetX.UnionCotangentialContoursXld(
[in] IHUntypedObjectX* Contours, [out] IHUntypedObjectX** UnionContours, [in] VARIANT FitClippingLength, [in] VARIANT FitLength, [in] VARIANT MaxTangAngle, [in] VARIANT MaxDist, [in] VARIANT MaxDistPerp, [in] VARIANT MaxOverlap, [in] VARIANT Mode)
IHXLDContX* HXLDContX.UnionCotangentialContoursXld(
[in] double FitClippingLength, [in] VARIANT FitLength, [in] double MaxTangAngle, [in] double MaxDist, [in] double MaxDistPerp, [in] double MaxOverlap, [in] BSTR Mode)
static void HOperatorSet.UnionCotangentialContoursXld(HObject contours, out HObject unionContours, HTuple fitClippingLength, HTuple fitLength, HTuple maxTangAngle, HTuple maxDist, HTuple maxDistPerp, HTuple maxOverlap, HTuple mode)
HXLDCont HXLDCont.UnionCotangentialContoursXld(double fitClippingLength, HTuple fitLength, double maxTangAngle, double maxDist, double maxDistPerp, double maxOverlap, string mode)
HXLDCont HXLDCont.UnionCotangentialContoursXld(double fitClippingLength, double fitLength, double maxTangAngle, double maxDist, double maxDistPerp, double maxOverlap, string mode)
Der Operator union_cotangential_contours_xldunion_cotangential_contours_xldUnionCotangentialContoursXldunion_cotangential_contours_xldUnionCotangentialContoursXldUnionCotangentialContoursXld vereinigt Konturen gemäß
der lokalen Krümmungen an ihren Endpunkten.
Parameter
- FitClippingLengthFitClippingLengthFitClippingLengthFitClippingLengthFitClippingLengthfitClippingLength
-
Dazu werden zunächst die für die jeweiligen Konturen ContoursContoursContoursContoursContourscontours
zu betrachtenden Endstücke bestimmt. FitClippingLengthFitClippingLengthFitClippingLengthFitClippingLengthFitClippingLengthfitClippingLength dient dazu,
die Konturen um eine bestimmte euklidische Länge zu beschneiden, so dass
eventuelle Artefakte an den Enden der Konturen für die weiteren Berechnungen
ignoriert werden können.
- FitLengthFitLengthFitLengthFitLengthFitLengthfitLength
-
FitLengthFitLengthFitLengthFitLengthFitLengthfitLength legt die euklidische Länge der
für die Vereinigung zu berücksichtigenden Endstücke der Konturen fest. D.h.,
an jeder Seite einer Kontur werden einem Endstück soviele Punkte zugeordnet,
dass die Länge des Endstücks mindestens dem übergebenen Wert entspricht.
Wird kein
numerischer Wert sondern der Wert 'auto'"auto""auto""auto""auto""auto" übergeben, wird jede
Eingangskontur in Geraden und Kreisbögen segmentiert. Von diesen Segmenten
dienen dann die äußersten Segmente als Endstücke der Kontur. Da dieses
Verfahren sehr rechenintensiv ist, ist eine numerisch festgelegte Länge, wenn
möglich, vorzuziehen.
Der Operator versucht nun, an jedes Endstück einer Kontur einen Kreis
anzupassen. Von der ursprünglichen Kontur werden die äußersten Punkte der
Kontur ermittelt, die nah genug (gemessen am mittleren quadratischen Fehler
der Kreisanpassung) an ihrem jeweiligen Kreis liegen. Die Kreistangenten an
diesen Punkten bestimmen die lokalen Krümmungen an den Enden der jeweiligen
Kontur.
Kann kein Kreis an ein Endstück angepasst werden, wird statt dessen versucht,
eine Regressionsgerade anzupassen. Die lokale Krümmung der Kontur an ihren
Enden entspricht dann der Richtung der Regressionsgeraden.
Mithilfe der berechneten lokalen Krümmungen an den Endpunkten der einzelnen
Eingabekonturen können nun die verschiedenen Eingabekonturen vereinigt
werden. Zwei Konturen werden dann vereinigt, wenn sämtliche Schwellwerte,
eingehalten werden:
- MaxTangAngleMaxTangAngleMaxTangAngleMaxTangAngleMaxTangAnglemaxTangAngle
-
Mit dem Parameter MaxTangAngleMaxTangAngleMaxTangAngleMaxTangAngleMaxTangAnglemaxTangAngle wird der maximale Winkel
zwischen den Tangenten zweier Konturen angegeben.
- MaxDistMaxDistMaxDistMaxDistMaxDistmaxDist
-
Der Parameter MaxDistMaxDistMaxDistMaxDistMaxDistmaxDist gibt die maximale Entfernung der Endpunkte
der Konturen voneinander an.
- MaxDistPerpMaxDistPerpMaxDistPerpMaxDistPerpMaxDistPerpmaxDistPerp
-
Mit MaxDistPerpMaxDistPerpMaxDistPerpMaxDistPerpMaxDistPerpmaxDistPerp wird der maximale Abstand der
Endpunkte senkrecht zu den Tangentenrichtungen bestimmt. Dieser Abstand
ist das Minimum der Abstände zwischen den Endpunkten der Konturen
senkrecht zur jeweils anderen Kontur.
- MaxOverlapMaxOverlapMaxOverlapMaxOverlapMaxOverlapmaxOverlap
-
Die Überlappung der Konturen wird mit dem
Parameter MaxOverlapMaxOverlapMaxOverlapMaxOverlapMaxOverlapmaxOverlap berücksichtigt. Das Ausmaß der
Überlappung wird durch den Abstand zwischen dem Endpunkt der ersten
Kontur und seiner Projektion auf die Tangente der zweiten Kontur und
durch den Abstand zwischen dem Endpunkt der zweiten Kontur und seiner
Projektion auf die Tangente der ersten Kontur berechnet. Beide Abstände
müssen kürzer als MaxOverlapMaxOverlapMaxOverlapMaxOverlapMaxOverlapmaxOverlap sein. Im Gegensatz zu den
vorherigen Schwellwerten kann MaxOverlapMaxOverlapMaxOverlapMaxOverlapMaxOverlapmaxOverlap auch
negativ sein. Negative Werte bezeichnen dann den minimalen Abstand
der Endpunkte in Tangentenrichtung.
Es ist möglich, dass eine Kontur durch
union_cotangential_contours_xldunion_cotangential_contours_xldUnionCotangentialContoursXldunion_cotangential_contours_xldUnionCotangentialContoursXldUnionCotangentialContoursXld
geschlossen wird oder mehrere Konturen zu einer einzigen geschlossenen Kontur
vereinigt werden, falls die oben genannten Kriterien für die Endstücke
erfüllt werden. Es ist zu beachten, dass bereits geschlossene Konturen nicht
mehr in eine Vereinigung einbezogen werden.
Gibt es Konturpaare, für die die oben genannten Kriterien zutreffen, wird
intern die Reihenfolge der Vereinigungen berechnet. Hierfür werden die
einzelnen möglichen Vereinigungen bewertet. Je näher die oben beschriebenen
Winkel und Abstände an 0 liegen, desto höher ist ihre Bewertungszahl. Die
Reihenfolge der Konturenvereinigung richtet sich dann nach der Höhe dieser
Bewertung.
Der Parameter ModeModeModeModeModemode gibt an, ob bestehende Attribute in die
vereinigten Konturen kopiert werden sollen. 'attr_keep'"attr_keep""attr_keep""attr_keep""attr_keep""attr_keep" kopiert die
Attribute, was die Laufzeit negativ beeinflussen kann, und
'attr_forget'"attr_forget""attr_forget""attr_forget""attr_forget""attr_forget" veranlasst den Operator, die Attribute zu ignorieren.
Weitere Details finden sich bei der Beschreibung des Parameters Mode des
Operators union_adjacent_contours_xldunion_adjacent_contours_xldUnionAdjacentContoursXldunion_adjacent_contours_xldUnionAdjacentContoursXldUnionAdjacentContoursXld).
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Wird ohne Parallelisierung verarbeitet.
Länge des für die Tangentenbestimmung zu
überspringenden Konturenstücks.
Defaultwert: 0.0
Typischer Wertebereich: 0.0
≤
FitClippingLength
FitClippingLength
FitClippingLength
FitClippingLength
FitClippingLength
fitClippingLength
Länge des für die Tangentenbestimmung zu benutzenden
Konturenstücks.
Defaultwert: 30.0
Wertevorschläge: 10.0, 20.0, 30.0, 'auto'"auto""auto""auto""auto""auto"
Typischer Wertebereich: 0.0
≤
FitLength
FitLength
FitLength
FitLength
FitLength
fitLength
Maximale Richtungsdifferenz der Tangenten.
Defaultwert: 0.78539816
Typischer Wertebereich: 0.0
≤
MaxTangAngle
MaxTangAngle
MaxTangAngle
MaxTangAngle
MaxTangAngle
maxTangAngle
≤
3.1415926
Maximaler Abstand der Endpunkte.
Defaultwert: 25.0
Wertevorschläge: 5.0, 10.0, 25.0, 50.0
Typischer Wertebereich: 0.0
≤
MaxDist
MaxDist
MaxDist
MaxDist
MaxDist
maxDist
Maximaler Abstand der Endpunkte senkrecht zu den
Tangenten.
Defaultwert: 10.0
Wertevorschläge: 2.0, 5.0, 10.0, 20.0
Typischer Wertebereich: 0.0
≤
MaxDistPerp
MaxDistPerp
MaxDistPerp
MaxDistPerp
MaxDistPerp
maxDistPerp
Maximale Überlappung zweier Konturen.
Defaultwert: 2.0
Wertevorschläge: 2.0, 5.0, 10.0, 20.0
Modus für die Behandlung der Konturattribute
Defaultwert:
'attr_forget'
"attr_forget"
"attr_forget"
"attr_forget"
"attr_forget"
"attr_forget"
Werteliste: 'attr_forget'"attr_forget""attr_forget""attr_forget""attr_forget""attr_forget", 'attr_keep'"attr_keep""attr_keep""attr_keep""attr_keep""attr_keep"
split_contours_xldsplit_contours_xldSplitContoursXldsplit_contours_xldSplitContoursXldSplitContoursXld,
select_contours_xldselect_contours_xldSelectContoursXldselect_contours_xldSelectContoursXldSelectContoursXld
union_collinear_contours_xldunion_collinear_contours_xldUnionCollinearContoursXldunion_collinear_contours_xldUnionCollinearContoursXldUnionCollinearContoursXld,
union_collinear_contours_ext_xldunion_collinear_contours_ext_xldUnionCollinearContoursExtXldunion_collinear_contours_ext_xldUnionCollinearContoursExtXldUnionCollinearContoursExtXld,
union_cocircular_contours_xldunion_cocircular_contours_xldUnionCocircularContoursXldunion_cocircular_contours_xldUnionCocircularContoursXldUnionCocircularContoursXld,
union_straight_contours_xldunion_straight_contours_xldUnionStraightContoursXldunion_straight_contours_xldUnionStraightContoursXldUnionStraightContoursXld,
union_adjacent_contours_xldunion_adjacent_contours_xldUnionAdjacentContoursXldunion_adjacent_contours_xldUnionAdjacentContoursXldUnionAdjacentContoursXld
edges_sub_pixedges_sub_pixEdgesSubPixedges_sub_pixEdgesSubPixEdgesSubPix,
threshold_sub_pixthreshold_sub_pixThresholdSubPixthreshold_sub_pixThresholdSubPixThresholdSubPix,
gen_polygons_xldgen_polygons_xldGenPolygonsXldgen_polygons_xldGenPolygonsXldGenPolygonsXld,
get_contour_xldget_contour_xldGetContourXldget_contour_xldGetContourXldGetContourXld,
get_contour_attrib_xldget_contour_attrib_xldGetContourAttribXldget_contour_attrib_xldGetContourAttribXldGetContourAttribXld
Foundation