moments_any_xldmoments_any_xldMomentsAnyXldMomentsAnyXld (Operator)

Name

moments_any_xldmoments_any_xldMomentsAnyXldMomentsAnyXld — Geometrische Momente beliebiger Ordnung von Konturen oder Polygonen.

Signatur

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

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_xldmoments_any_xldMomentsAnyXldMomentsAnyXldMomentsAnyXld berechnet Momente beliebiger Ordnung der von Konturen oder Polygonen XLDXLDXLDXLDXLD 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_xldmoments_any_xldMomentsAnyXldMomentsAnyXldMomentsAnyXld 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_xldtest_self_intersection_xldTestSelfIntersectionXldTestSelfIntersectionXldTestSelfIntersectionXld überprüft werden. Falls sich die Kontur oder das Polygon selbst schneidet, kann ein sinnvoller Wert für die Momente mit moments_any_points_xldmoments_any_points_xldMomentsAnyPointsXldMomentsAnyPointsXldMomentsAnyPointsXld berechnet werden.

Abhängig vom Parameter ModeModeModeModemode werden die berechneten Momente wie folgt nomiert: ModeModeModeModemode:

'unnormalized':

Keine Normalisierung

'unnormalized_central':

Verschiebung der Bildregion um ihren Schwerpunkt

'normalized':

Normalisierung durch die Fläche A = AreaAreaAreaAreaarea der eingeschlossenen Bildregion

'central':

Normalisierung durch die Fläche A = AreaAreaAreaAreaarea 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 AreaAreaAreaAreaarea der eingeschlossenen Bildregion sowie die Koordinaten CenterRowCenterRowCenterRowCenterRowcenterRow,CenterColCenterColCenterColCenterColcenterCol des Schwerpunktes, vgl. area_center_xldarea_center_xldAreaCenterXldAreaCenterXldAreaCenterXld. Außerdem erwartet moments_any_xldmoments_any_xldMomentsAnyXldMomentsAnyXldMomentsAnyXld den Umlaufsinn der Eingabekonturen bzw. -polygone in PointOrderPointOrderPointOrderPointOrderpointOrder (diese Werte können mit area_center_xldarea_center_xldAreaCenterXldAreaCenterXldAreaCenterXld berechnet 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"

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

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

Fläche, die von der Kontur eingeschlossen wird.

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_xldmoments_any_xldMomentsAnyXldMomentsAnyXldMomentsAnyXld 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_xldarea_center_xldAreaCenterXldAreaCenterXldAreaCenterXld, gen_contours_skeleton_xldgen_contours_skeleton_xldGenContoursSkeletonXldGenContoursSkeletonXldGenContoursSkeletonXld, smooth_contours_xldsmooth_contours_xldSmoothContoursXldSmoothContoursXldSmoothContoursXld, gen_polygons_xldgen_polygons_xldGenPolygonsXldGenPolygonsXldGenPolygonsXld

Alternativen

moments_xldmoments_xldMomentsXldMomentsXldMomentsXld, moments_any_points_xldmoments_any_points_xldMomentsAnyPointsXldMomentsAnyPointsXldMomentsAnyPointsXld

Siehe auch

moments_xldmoments_xldMomentsXldMomentsXldMomentsXld, area_center_xldarea_center_xldAreaCenterXldAreaCenterXldAreaCenterXld, moments_region_2ndmoments_region_2ndMomentsRegion2ndMomentsRegion2ndMomentsRegion2nd, area_centerarea_centerAreaCenterAreaCenterAreaCenter

Modul

Foundation