moments_region_2nd moments_region_2nd MomentsRegion2nd MomentsRegion2nd moments_region_2nd (Operator)
Name
moments_region_2nd moments_region_2nd MomentsRegion2nd MomentsRegion2nd moments_region_2nd — Ermitteln der geometrischen Momente von Regionen.
Signatur
Herror moments_region_2nd (const Hobject Regions , double* M11 , double* M20 , double* M02 , double* Ia , double* Ib )
Herror T_moments_region_2nd (const Hobject Regions , Htuple* M11 , Htuple* M20 , Htuple* M02 , Htuple* Ia , Htuple* Ib )
void MomentsRegion2nd (const HObject& Regions , HTuple* M11 , HTuple* M20 , HTuple* M02 , HTuple* Ia , HTuple* Ib )
HTuple HRegion ::MomentsRegion2nd (HTuple* M20 , HTuple* M02 , HTuple* Ia , HTuple* Ib ) const
double HRegion ::MomentsRegion2nd (double* M20 , double* M02 , double* Ia , double* Ib ) const
static void HOperatorSet .MomentsRegion2nd (HObject regions , out HTuple m11 , out HTuple m20 , out HTuple m02 , out HTuple ia , out HTuple ib )
HTuple HRegion .MomentsRegion2nd (out HTuple m20 , out HTuple m02 , out HTuple ia , out HTuple ib )
double HRegion .MomentsRegion2nd (out double m20 , out double m02 , out double ia , out double ib )
def moments_region_2nd (regions : HObject) -> Tuple[Sequence[float], Sequence[float], Sequence[float], Sequence[float], Sequence[float]]
def moments_region_2nd_s (regions : HObject) -> Tuple[float, float, float, float, float]
Beschreibung
moments_region_2nd moments_region_2nd MomentsRegion2nd MomentsRegion2nd MomentsRegion2nd moments_region_2nd berechnet die geometrischen Momente M11 M11 M11 M11 m11 m11 ,
M20 M20 M20 M20 m20 m20 und M02 M02 M02 M02 m02 m02 der Eingaberegionen in Regions Regions Regions Regions regions regions .
Weiterhin werden die Hauptachsen Ia Ia Ia Ia ia ia und Ib Ib Ib Ib ib ib
berechnet.
Die Kovarianzmatrix ist definiert durch:
Das zeilenabhängige Moment 2. Ordnung wird in M20 M20 M20 M20 m20 m20 und das
spaltenabhängige Moment 2. Ordnung wird in M02 M02 M02 M02 m02 m02 zurückgegeben.
Das Moment M11 M11 M11 M11 m11 m11 repräsentiert die Kovarianz zwischen den Zeilen- und
Spaltenkoordinaten der Punkte der Region.
Berechnung:
Es seien
und
die Koordinaten
des Schwerpunktes einer Region R.
Dann sind die Momente
definiert durch:
wobei r und c alle Punkte der Region R durchlaufen.
Zusätzlich sind die Längen der 1. und 2. Hauptachse definiert durch:
wobei
Die Gleichung zur Berechnung der 1. und 2. Hauptachse kann von der Definition
der Momente abgeleitet werden durch Diagonalisieren der Kovarianzmatrix und
Umformen der daraus resultierenden Formel.
Wird mehr als eine Region übergeben, werden die Ergebnisse in
Tupeln abgespeichert, wobei der Index eines Wertes in dem Tupel
dem Index einer Region in der Eingabe entspricht.
Bei leerer Region wird für alle Parameter der Wert 0.0 zurückgegeben, soweit
kein anderes Verhalten eingestellt wurde (siehe set_system set_system SetSystem SetSystem SetSystem set_system ).
Ausführungsinformationen
Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
Automatisch parallelisiert auf Tupelebene.
Parameter
Regions Regions Regions Regions regions regions (input_object) region(-array) → object HRegion HObject HRegion Hobject
Eingaberegionen.
M11 M11 M11 M11 m11 m11 (output_control) real(-array) → HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Trägheitsprodukt der Achsen durch den Schwerpunkt
parallel zu den Koordinatenachsen.
M20 M20 M20 M20 m20 m20 (output_control) real(-array) → HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Moment 2. Ordnung (zeilenabhängig).
M02 M02 M02 M02 m02 m02 (output_control) real(-array) → HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Moment 2. Ordnung (spaltenabhängig).
Ia Ia Ia Ia ia ia (output_control) real(-array) → HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Länge der 1. Hauptachse der Eingaberegion.
Ib Ib Ib Ib ib ib (output_control) real(-array) → HTuple Sequence[float] HTuple Htuple (real) (double ) (double ) (double )
Länge der 2. Hauptachse der Eingaberegion.
Komplexität
Sei F die Fläche einer Region, dann beträgt die
Laufzeitkomplexität im Mittel O(sqrt(F)).
Ergebnis
moments_region_2nd moments_region_2nd MomentsRegion2nd MomentsRegion2nd MomentsRegion2nd moments_region_2nd liefert den Wert TRUE, falls die Eingabe nicht
leer ist. Das Verhalten bei leerer Eingabe (keine Eingaberegionen
vorhanden) 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>) set_system("no_object_result",<Result>) festlegen.
Das Verhalten bei einer leeren Region (Region ist die leere Menge)
wird mit set_system('empty_region_result',<Result>) set_system("empty_region_result",<Result>) SetSystem("empty_region_result",<Result>) SetSystem("empty_region_result",<Result>) SetSystem("empty_region_result",<Result>) set_system("empty_region_result",<Result>)
bestimmt. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
threshold threshold Threshold Threshold Threshold threshold ,
regiongrowing regiongrowing Regiongrowing Regiongrowing Regiongrowing regiongrowing ,
connection connection Connection Connection Connection connection
Alternativen
moments_region_2nd_invar moments_region_2nd_invar MomentsRegion2ndInvar MomentsRegion2ndInvar MomentsRegion2ndInvar moments_region_2nd_invar
Siehe auch
elliptic_axis elliptic_axis EllipticAxis EllipticAxis EllipticAxis elliptic_axis
Literatur
R. Haralick, L. Shapiro
„Computer and Robot Vision“
Addison-Wesley, 1992, pp. 73-75
Modul
Foundation