moments_any_xld moments_any_xld MomentsAnyXld MomentsAnyXld (Operator)
Name
moments_any_xld moments_any_xld MomentsAnyXld MomentsAnyXld
— Geometrische Momente beliebiger Ordnung von Konturen oder Polygonen.
Signatur
Herror moments_any_xld (const Hobject XLD , const char* Mode , const char* PointOrder , double Area , double CenterRow , double CenterCol , const Hlong P , const Hlong Q , double* M )
Herror T_moments_any_xld (const Hobject XLD , const Htuple Mode , const Htuple PointOrder , const Htuple Area , const Htuple CenterRow , const Htuple CenterCol , const Htuple P , const Htuple Q , Htuple* M )
void MomentsAnyXld (const HObject& XLD , const HTuple& Mode , const HTuple& PointOrder , const HTuple& Area , const HTuple& CenterRow , const HTuple& CenterCol , const HTuple& P , const HTuple& Q , HTuple* M )
HTuple HXLD ::MomentsAnyXld (const HString& Mode , const HTuple& PointOrder , const HTuple& Area , const HTuple& CenterRow , const HTuple& CenterCol , const HTuple& P , const HTuple& Q ) const
double HXLD ::MomentsAnyXld (const HString& Mode , const HString& PointOrder , double Area , double CenterRow , double CenterCol , Hlong P , Hlong Q ) const
double HXLD ::MomentsAnyXld (const char* Mode , const char* PointOrder , double Area , double CenterRow , double CenterCol , Hlong P , Hlong Q ) const
double HXLD ::MomentsAnyXld (const wchar_t* Mode , const wchar_t* PointOrder , double Area , double CenterRow , double CenterCol , Hlong P , Hlong Q ) const
(Nur Windows)
static void HOperatorSet .MomentsAnyXld (HObject XLD , HTuple mode , HTuple pointOrder , HTuple area , HTuple centerRow , HTuple centerCol , HTuple p , HTuple q , out HTuple m )
HTuple HXLD .MomentsAnyXld (string mode , HTuple pointOrder , HTuple area , HTuple centerRow , HTuple centerCol , HTuple p , HTuple q )
double HXLD .MomentsAnyXld (string mode , string pointOrder , double area , double centerRow , double centerCol , int p , int q )
Beschreibung
moments_any_xld moments_any_xld MomentsAnyXld MomentsAnyXld MomentsAnyXld
berechnet Momente beliebiger Ordnung der von
Konturen oder Polygonen XLD XLD XLD XLD XLD
umschlossenen Bildregionen.
Die Momente werden durch Anwendung des Gaußschen Integralsatzes nur
unter Verwendung der Kontur- oder Polygonpunkte berechnet, d.h. es
wird keine explizite Fläche zur Berechnung erzeugt. Es wird
vorausgesetzt, dass die Konturen bzw. Polygone geschlossen sind. Ist das
nicht der Fall, werden sie künstlich geschlossen.
Es ist zu beachten, dass moments_any_xld moments_any_xld MomentsAnyXld MomentsAnyXld MomentsAnyXld
nur dann sinnvolle
Ergebnisse liefert, falls die Kontur oder das Polygon eine Fläche in
der Ebene einschließt. Insbesondere darf sich die Kontur oder das
Polygon nicht selbst schneiden. Dies ist insbesondere dann zu
beachten, wenn offene Konturen und Polygone übergeben werden, da
diese automatisch geschlossen werden, was dazu führen kann, dass sich
die Kontur oder das Polygon selbst schneidet. Ob sich die Konturen
oder Polygone selbst schneiden, kann leicht mit
test_self_intersection_xld test_self_intersection_xld TestSelfIntersectionXld TestSelfIntersectionXld TestSelfIntersectionXld
überprüft werden. Falls sich die
Kontur oder das Polygon selbst schneidet, kann ein sinnvoller Wert
für die Momente mit moments_any_points_xld moments_any_points_xld MomentsAnyPointsXld MomentsAnyPointsXld MomentsAnyPointsXld
berechnet werden.
Abhängig vom Parameter Mode Mode Mode Mode mode
werden die berechneten Momente
wie folgt nomiert:
Mode Mode Mode Mode mode
:
'unnormalized':
Keine Normalisierung
'unnormalized_central':
Verschiebung der Bildregion um ihren
Schwerpunkt
'normalized':
Normalisierung durch die Fläche A = Area Area Area Area area
der eingeschlossenen Bildregion
'central':
Normalisierung durch die Fläche A = Area Area Area Area area
der eingeschlossenen
Bildregion und zusätzlich Verschiebung der Bildregion um
ihren Schwerpunkt
Für die Normierung der Momente werden ggf. drei spezielle Momente
benötigt: Die Fläche Area Area Area Area area
der eingeschlossenen Bildregion
sowie die Koordinaten CenterRow CenterRow CenterRow CenterRow centerRow
,CenterCol CenterCol CenterCol CenterCol centerCol
des
Schwerpunktes, vgl. area_center_xld area_center_xld AreaCenterXld AreaCenterXld AreaCenterXld
. Außerdem erwartet
moments_any_xld moments_any_xld MomentsAnyXld MomentsAnyXld MomentsAnyXld
den Umlaufsinn der Eingabekonturen
bzw. -polygone in PointOrder PointOrder PointOrder PointOrder pointOrder
(diese Werte können mit
area_center_xld area_center_xld AreaCenterXld AreaCenterXld AreaCenterXld
berechnet werden). Wird mehr als eine Kontur oder
ein Polygon übergeben, dann werden die Momente für die einzelnen Konturen
bzw. Polygone hintereinander in M M M M m
abgelegt.
Ausführungsinformationen
Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
Wird ohne Parallelisierung verarbeitet.
Parameter
XLD XLD XLD XLD XLD
(input_object) xld(-array) →
object HXLD HXLD Hobject
Zu untersuchende Konturen bzw. Polygone.
Mode Mode Mode Mode mode
(input_control) string →
HTuple HTuple Htuple (string) (string ) (HString ) (char* )
Modus.
Defaultwert:
'unnormalized'
"unnormalized"
"unnormalized"
"unnormalized"
"unnormalized"
Wertevorschläge: 'unnormalized' "unnormalized" "unnormalized" "unnormalized" "unnormalized" , 'unnormalized_central' "unnormalized_central" "unnormalized_central" "unnormalized_central" "unnormalized_central" , 'normalized' "normalized" "normalized" "normalized" "normalized" , 'central' "central" "central" "central" "central"
PointOrder PointOrder PointOrder PointOrder pointOrder
(input_control) string(-array) →
HTuple HTuple Htuple (string) (string ) (HString ) (char* )
Mathematischer Umlaufsinn der Stützpunkte.
Defaultwert:
'positive'
"positive"
"positive"
"positive"
"positive"
Wertevorschläge: 'positive' "positive" "positive" "positive" "positive" , 'negative' "negative" "negative" "negative" "negative"
Area Area Area Area area
(input_control) real(-array) →
HTuple HTuple Htuple (real) (double ) (double ) (double )
Fläche, die von der Kontur eingeschlossen wird.
CenterRow CenterRow CenterRow CenterRow centerRow
(input_control) point.y(-array) →
HTuple HTuple Htuple (real) (double ) (double ) (double )
Zeilenindex des Schwerpunktes.
CenterCol CenterCol CenterCol CenterCol centerCol
(input_control) point.x(-array) →
HTuple HTuple Htuple (real) (double ) (double ) (double )
Spaltenindex des Schwerpunktes.
P P P P p
(input_control) point.x(-array) →
HTuple HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
Erster Index der zu berechnenden Momente
.
Defaultwert: 1
Wertevorschläge: 0, 1, 2, 3, 4
Q Q Q Q q
(input_control) point.x(-array) →
HTuple HTuple Htuple (integer) (int / long) (Hlong ) (Hlong )
Zweiter Index der zu berechnenden Momente
.
Defaultwert: 1
Wertevorschläge: 0, 1, 2, 3, 4
M M M M m
(output_control) real(-array) →
HTuple HTuple Htuple (real) (double ) (double ) (double )
Die berechneten Momente.
Komplexität
Sei n die Anzahl der Punkte in der Kontur bzw. dem
Polygon. Dann ist die Laufzeit O(n).
Ergebnis
moments_any_xld moments_any_xld MomentsAnyXld MomentsAnyXld MomentsAnyXld
liefert den Wert 2 (H_MSG_TRUE), falls die Eingabe
nicht leer ist. Das Verhalten bei leerer Eingabe lässt sich
mittels set_system(::'no_object_result',<Result>:) set_system("no_object_result",<Result>) SetSystem("no_object_result",<Result>) SetSystem("no_object_result",<Result>) SetSystem("no_object_result",<Result>)
festlegen. Gegebenenfalls wird eine Fehlerbehandlung
durchgeführt.
Vorgänger
area_center_xld area_center_xld AreaCenterXld AreaCenterXld AreaCenterXld
,
gen_contours_skeleton_xld gen_contours_skeleton_xld GenContoursSkeletonXld GenContoursSkeletonXld GenContoursSkeletonXld
,
smooth_contours_xld smooth_contours_xld SmoothContoursXld SmoothContoursXld SmoothContoursXld
,
gen_polygons_xld gen_polygons_xld GenPolygonsXld GenPolygonsXld GenPolygonsXld
Alternativen
moments_xld moments_xld MomentsXld MomentsXld MomentsXld
,
moments_any_points_xld moments_any_points_xld MomentsAnyPointsXld MomentsAnyPointsXld MomentsAnyPointsXld
Siehe auch
moments_xld moments_xld MomentsXld MomentsXld MomentsXld
,
area_center_xld area_center_xld AreaCenterXld AreaCenterXld AreaCenterXld
,
moments_region_2nd moments_region_2nd MomentsRegion2nd MomentsRegion2nd MomentsRegion2nd
,
area_center area_center AreaCenter AreaCenter AreaCenter
Modul
Foundation