moments_any_points_xld moments_any_points_xld MomentsAnyPointsXld MomentsAnyPointsXld (Operator)
Name
moments_any_points_xld moments_any_points_xld MomentsAnyPointsXld MomentsAnyPointsXld
— Geometrische Momente beliebiger Ordnung von Konturen oder Polygonen,
die wie Punktwolken behandelt werden.
Signatur
Herror moments_any_points_xld (const Hobject XLD , const char* Mode , double Area , double CenterRow , double CenterCol , const Hlong P , const Hlong Q , double* M )
Herror T_moments_any_points_xld (const Hobject XLD , const Htuple Mode , const Htuple Area , const Htuple CenterRow , const Htuple CenterCol , const Htuple P , const Htuple Q , Htuple* M )
void MomentsAnyPointsXld (const HObject& XLD , const HTuple& Mode , const HTuple& Area , const HTuple& CenterRow , const HTuple& CenterCol , const HTuple& P , const HTuple& Q , HTuple* M )
HTuple HXLD ::MomentsAnyPointsXld (const HString& Mode , const HTuple& Area , const HTuple& CenterRow , const HTuple& CenterCol , const HTuple& P , const HTuple& Q ) const
double HXLD ::MomentsAnyPointsXld (const HString& Mode , double Area , double CenterRow , double CenterCol , Hlong P , Hlong Q ) const
double HXLD ::MomentsAnyPointsXld (const char* Mode , double Area , double CenterRow , double CenterCol , Hlong P , Hlong Q ) const
double HXLD ::MomentsAnyPointsXld (const wchar_t* Mode , double Area , double CenterRow , double CenterCol , Hlong P , Hlong Q ) const
(Nur Windows)
static void HOperatorSet .MomentsAnyPointsXld (HObject XLD , HTuple mode , HTuple area , HTuple centerRow , HTuple centerCol , HTuple p , HTuple q , out HTuple m )
HTuple HXLD .MomentsAnyPointsXld (string mode , HTuple area , HTuple centerRow , HTuple centerCol , HTuple p , HTuple q )
double HXLD .MomentsAnyPointsXld (string mode , double area , double centerRow , double centerCol , int p , int q )
Beschreibung
moments_any_points_xld moments_any_points_xld MomentsAnyPointsXld MomentsAnyPointsXld MomentsAnyPointsXld
berechnet Momente beliebiger Ordnung
der durch Konturen oder Polygonen XLD XLD XLD XLD XLD
gegebenen Punktwolken
(d.h. die Reihenfolge der Kontur- oder Polygonpunkte wird nicht
berücksichtigt).
Abhängig vom Parameter Mode Mode Mode Mode mode
werden die berechneten Momente
wie folgt normiert:
'unnormalized':
Keine Normalisierung.
'unnormalized_central':
Verschiebung der Konturpunkte um ihren
Schwerpunkt
'normalized':
Normalisierung durch die Fläche A =
Area Area Area Area area
von XLD XLD XLD XLD XLD
'central':
Normalisierung durch die Fläche A = Area Area Area Area area
und zusätzlich Verschiebung der Bildregion um ihren Schwerpunkt
Für die Normierung der Momente werden ggf. drei spezielle Werte
benötigt: Die Fläche Area Area Area Area area
sowie die Koordinaten
CenterRow CenterRow CenterRow CenterRow centerRow
,CenterRow CenterRow CenterRow CenterRow centerRow
des Schwerpunktes (diese können
mittels area_center_points_xld area_center_points_xld AreaCenterPointsXld AreaCenterPointsXld AreaCenterPointsXld
berechnet werden).
Bei geschlossenen Konturen oder Polygonen (Anfangspunkt = Endpunkt) wird
der Endpunkt der Kontur oder des Polygons nicht berücksichtigt, da er sonst
doppeltes Gewicht erhielte.
moments_any_points_xld moments_any_points_xld MomentsAnyPointsXld MomentsAnyPointsXld MomentsAnyPointsXld
sollte dann verwendet werden, wenn die Kontur
XLD XLD XLD XLD XLD
entweder nicht kreuzungsfrei ist oder nicht kreuzungsfrei durch
eine Line vom End- zum Anfangspunkt geschlossen werden kann. In diesem Fall
liefert moments_xld moments_xld MomentsXld MomentsXld MomentsXld
keine sinnvollen Ergebnisse. 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.
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"
Area Area Area Area area
(input_control) real(-array) →
HTuple HTuple Htuple (real) (double ) (double ) (double )
Fläche der Punktwolke.
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_points_xld moments_any_points_xld MomentsAnyPointsXld MomentsAnyPointsXld MomentsAnyPointsXld
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_points_xld area_center_points_xld AreaCenterPointsXld AreaCenterPointsXld AreaCenterPointsXld
,
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_points_xld moments_points_xld MomentsPointsXld MomentsPointsXld MomentsPointsXld
,
moments_any_xld moments_any_xld MomentsAnyXld MomentsAnyXld MomentsAnyXld
Siehe auch
moments_points_xld moments_points_xld MomentsPointsXld MomentsPointsXld MomentsPointsXld
,
area_center_points_xld area_center_points_xld AreaCenterPointsXld AreaCenterPointsXld AreaCenterPointsXld
,
moments_region_2nd moments_region_2nd MomentsRegion2nd MomentsRegion2nd MomentsRegion2nd
,
area_center area_center AreaCenter AreaCenter AreaCenter
Modul
Foundation