moments_region_2nd
— Ermitteln der geometrischen Momente von Regionen.
moments_region_2nd
berechnet die geometrischen Momente M11
,
M20
und M02
der Eingaberegionen in Regions
.
Weiterhin werden die Hauptachsen Ia
und Ib
berechnet.
Die Kovarianzmatrix ist definiert durch:
Das zeilenabhängige Moment 2. Ordnung wird in M20
und das
spaltenabhängige Moment 2. Ordnung wird in M02
zurückgegeben.
Das Moment M11
repräsentiert die Kovarianz zwischen den Zeilen- und
Spaltenkoordinaten der Punkte der Region.
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
).
Regions
(input_object) region(-array) →
object
Eingaberegionen.
M11
(output_control) real(-array) →
(real)
Trägheitsprodukt der Achsen durch den Schwerpunkt parallel zu den Koordinatenachsen.
M20
(output_control) real(-array) →
(real)
Moment 2. Ordnung (zeilenabhängig).
M02
(output_control) real(-array) →
(real)
Moment 2. Ordnung (spaltenabhängig).
Ia
(output_control) real(-array) →
(real)
Länge der 1. Hauptachse der Eingaberegion.
Ib
(output_control) real(-array) →
(real)
Länge der 2. Hauptachse der Eingaberegion.
Sei F die Fläche einer Region, dann beträgt die Laufzeitkomplexität im Mittel O(sqrt(F)).
moments_region_2nd
liefert den Wert 2 (H_MSG_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>)
festlegen.
Das Verhalten bei einer leeren Region (Region ist die leere Menge)
wird mit set_system('empty_region_result',<Result>)
bestimmt. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
threshold
,
regiongrowing
,
connection
R. Haralick, L. Shapiro „Computer and Robot Vision“ Addison-Wesley, 1992, pp. 73-75
Foundation