KlassenKlassenKlassenKlassen | | | | Operatoren

moments_any_points_xldmoments_any_points_xldMomentsAnyPointsXldmoments_any_points_xldMomentsAnyPointsXldMomentsAnyPointsXld (Operator)

Name

moments_any_points_xldmoments_any_points_xldMomentsAnyPointsXldmoments_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)

Herror moments_any_points_xld(Hobject XLD, const HTuple& Mode, const HTuple& Area, const HTuple& CenterRow, const HTuple& CenterCol, const HTuple& P, const HTuple& Q, double* M)

Herror moments_any_points_xld(Hobject XLD, const HTuple& Mode, const HTuple& Area, const HTuple& CenterRow, const HTuple& CenterCol, const HTuple& P, const HTuple& Q, HTuple* M)

double HXLD::MomentsAnyPointsXld(const HTuple& Mode, const HTuple& Area, const HTuple& CenterRow, const HTuple& CenterCol, const HTuple& P, const HTuple& Q) const

HTuple HXLDArray::MomentsAnyPointsXld(const HTuple& Mode, const HTuple& Area, const HTuple& CenterRow, const HTuple& CenterCol, const HTuple& P, const HTuple& Q) const

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

void HOperatorSetX.MomentsAnyPointsXld(
[in] IHUntypedObjectX* XLD, [in] VARIANT Mode, [in] VARIANT Area, [in] VARIANT CenterRow, [in] VARIANT CenterCol, [in] VARIANT P, [in] VARIANT Q, [out] VARIANT* M)

VARIANT HXLDX.MomentsAnyPointsXld(
[in] BSTR Mode, [in] VARIANT Area, [in] VARIANT CenterRow, [in] VARIANT CenterCol, [in] VARIANT P, [in] VARIANT Q)

VARIANT HXLDContX.MomentsAnyPointsXld(
[in] BSTR Mode, [in] VARIANT Area, [in] VARIANT CenterRow, [in] VARIANT CenterCol, [in] VARIANT P, [in] VARIANT Q)

VARIANT HXLDPolyX.MomentsAnyPointsXld(
[in] BSTR Mode, [in] VARIANT Area, [in] VARIANT CenterRow, [in] VARIANT CenterCol, [in] VARIANT P, [in] VARIANT Q)

VARIANT HXLDParaX.MomentsAnyPointsXld(
[in] BSTR Mode, [in] VARIANT Area, [in] VARIANT CenterRow, [in] VARIANT CenterCol, [in] VARIANT P, [in] VARIANT Q)

VARIANT HXLDModParaX.MomentsAnyPointsXld(
[in] BSTR Mode, [in] VARIANT Area, [in] VARIANT CenterRow, [in] VARIANT CenterCol, [in] VARIANT P, [in] VARIANT Q)

VARIANT HXLDExtParaX.MomentsAnyPointsXld(
[in] BSTR Mode, [in] VARIANT Area, [in] VARIANT CenterRow, [in] VARIANT CenterCol, [in] VARIANT P, [in] VARIANT Q)

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

Abhängig vom Parameter ModeModeModeModeModemode 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 = AreaAreaAreaAreaAreaarea von XLDXLDXLDXLDXLDXLD

'central':

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

Parallelisierung

Parameter

XLDXLDXLDXLDXLDXLD (input_object)  xld(-array) objectHXLDHXLDHXLDHXLDXHobject

Zu untersuchende Konturen bzw. Polygone.

ModeModeModeModeModemode (input_control)  string HTupleHTupleHTupleVARIANTHtuple (string) (string) (HString) (char*) (BSTR) (char*)

Modus.

Defaultwert: 'unnormalized' "unnormalized" "unnormalized" "unnormalized" "unnormalized" "unnormalized"

Wertevorschläge: 'unnormalized'"unnormalized""unnormalized""unnormalized""unnormalized""unnormalized", 'unnormalized_central'"unnormalized_central""unnormalized_central""unnormalized_central""unnormalized_central""unnormalized_central", 'normalized'"normalized""normalized""normalized""normalized""normalized", 'central'"central""central""central""central""central"

AreaAreaAreaAreaAreaarea (input_control)  real(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Fläche der Punktwolke.

CenterRowCenterRowCenterRowCenterRowCenterRowcenterRow (input_control)  point.y(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Zeilenindex des Schwerpunktes.

CenterColCenterColCenterColCenterColCenterColcenterCol (input_control)  point.x(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Spaltenindex des Schwerpunktes.

PPPPPp (input_control)  point.x(-array) HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Erster Index der zu berechnenden Momente .

Defaultwert: 1

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

QQQQQq (input_control)  point.x(-array) HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Zweiter Index der zu berechnenden Momente .

Defaultwert: 1

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

MMMMMm (output_control)  real(-array) HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (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_xldMomentsAnyPointsXldmoments_any_points_xldMomentsAnyPointsXldMomentsAnyPointsXld 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>)set_system("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_xldAreaCenterPointsXldarea_center_points_xldAreaCenterPointsXldAreaCenterPointsXld, gen_contours_skeleton_xldgen_contours_skeleton_xldGenContoursSkeletonXldgen_contours_skeleton_xldGenContoursSkeletonXldGenContoursSkeletonXld, smooth_contours_xldsmooth_contours_xldSmoothContoursXldsmooth_contours_xldSmoothContoursXldSmoothContoursXld, gen_polygons_xldgen_polygons_xldGenPolygonsXldgen_polygons_xldGenPolygonsXldGenPolygonsXld

Alternativen

moments_points_xldmoments_points_xldMomentsPointsXldmoments_points_xldMomentsPointsXldMomentsPointsXld, moments_any_xldmoments_any_xldMomentsAnyXldmoments_any_xldMomentsAnyXldMomentsAnyXld

Siehe auch

moments_points_xldmoments_points_xldMomentsPointsXldmoments_points_xldMomentsPointsXldMomentsPointsXld, area_center_points_xldarea_center_points_xldAreaCenterPointsXldarea_center_points_xldAreaCenterPointsXldAreaCenterPointsXld, moments_region_2ndmoments_region_2ndMomentsRegion2ndmoments_region_2ndMomentsRegion2ndMomentsRegion2nd, area_centerarea_centerAreaCenterarea_centerAreaCenterAreaCenter

Modul

Foundation


KlassenKlassenKlassenKlassen | | | | Operatoren