moments_any_points_xldmoments_any_points_xldMomentsAnyPointsXldMomentsAnyPointsXld (Operator)

Name

moments_any_points_xldmoments_any_points_xldMomentsAnyPointsXldMomentsAnyPointsXld — Geometrische Momente beliebiger Ordnung von Konturen oder Polygonen, die wie Punktwolken behandelt werden.

Signatur

moments_any_points_xld(XLD : : Mode, Area, CenterRow, CenterCol, P, Q : M)

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_xldmoments_any_points_xldMomentsAnyPointsXldMomentsAnyPointsXldMomentsAnyPointsXld berechnet Momente beliebiger Ordnung der durch Konturen oder Polygonen XLDXLDXLDXLDXLD gegebenen Punktwolken (d.h. die Reihenfolge der Kontur- oder Polygonpunkte wird nicht berücksichtigt).

Abhängig vom Parameter ModeModeModeModemode 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 = AreaAreaAreaAreaarea von XLDXLDXLDXLDXLD

'central':

Normalisierung durch die Fläche A = AreaAreaAreaAreaarea 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 AreaAreaAreaAreaarea sowie die Koordinaten CenterRowCenterRowCenterRowCenterRowcenterRow,CenterRowCenterRowCenterRowCenterRowcenterRow des Schwerpunktes (diese können mittels area_center_points_xldarea_center_points_xldAreaCenterPointsXldAreaCenterPointsXldAreaCenterPointsXld 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_xldmoments_any_points_xldMomentsAnyPointsXldMomentsAnyPointsXldMomentsAnyPointsXld sollte dann verwendet werden, wenn die Kontur XLDXLDXLDXLDXLD entweder nicht kreuzungsfrei ist oder nicht kreuzungsfrei durch eine Line vom End- zum Anfangspunkt geschlossen werden kann. In diesem Fall liefert moments_xldmoments_xldMomentsXldMomentsXldMomentsXld keine sinnvollen Ergebnisse. Ob sich die Konturen oder Polygone selbst schneiden, kann leicht mit test_self_intersection_xldtest_self_intersection_xldTestSelfIntersectionXldTestSelfIntersectionXldTestSelfIntersectionXld ü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 MMMMm abgelegt.

Ausführungsinformationen

Parameter

XLDXLDXLDXLDXLD (input_object)  xld(-array) objectHXLDHXLDHobject

Zu untersuchende Konturen bzw. Polygone.

ModeModeModeModemode (input_control)  string HTupleHTupleHtuple (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"

AreaAreaAreaAreaarea (input_control)  real(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Fläche der Punktwolke.

CenterRowCenterRowCenterRowCenterRowcenterRow (input_control)  point.y(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Zeilenindex des Schwerpunktes.

CenterColCenterColCenterColCenterColcenterCol (input_control)  point.x(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Spaltenindex des Schwerpunktes.

PPPPp (input_control)  point.x(-array) HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Erster Index der zu berechnenden Momente .

Defaultwert: 1

Wertevorschläge: 0, 1, 2, 3, 4

QQQQq (input_control)  point.x(-array) HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Zweiter Index der zu berechnenden Momente .

Defaultwert: 1

Wertevorschläge: 0, 1, 2, 3, 4

MMMMm (output_control)  real(-array) HTupleHTupleHtuple (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_xldmoments_any_points_xldMomentsAnyPointsXldMomentsAnyPointsXldMomentsAnyPointsXld 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_xldarea_center_points_xldAreaCenterPointsXldAreaCenterPointsXldAreaCenterPointsXld, gen_contours_skeleton_xldgen_contours_skeleton_xldGenContoursSkeletonXldGenContoursSkeletonXldGenContoursSkeletonXld, smooth_contours_xldsmooth_contours_xldSmoothContoursXldSmoothContoursXldSmoothContoursXld, gen_polygons_xldgen_polygons_xldGenPolygonsXldGenPolygonsXldGenPolygonsXld

Alternativen

moments_points_xldmoments_points_xldMomentsPointsXldMomentsPointsXldMomentsPointsXld, moments_any_xldmoments_any_xldMomentsAnyXldMomentsAnyXldMomentsAnyXld

Siehe auch

moments_points_xldmoments_points_xldMomentsPointsXldMomentsPointsXldMomentsPointsXld, area_center_points_xldarea_center_points_xldAreaCenterPointsXldAreaCenterPointsXldAreaCenterPointsXld, moments_region_2ndmoments_region_2ndMomentsRegion2ndMomentsRegion2ndMomentsRegion2nd, area_centerarea_centerAreaCenterAreaCenterAreaCenter

Modul

Foundation