| Operatoren |
elliptic_axis_xld — Parameter der äquivalenten Ellipse von Konturen oder Polygonen.
elliptic_axis_xld berechnet die Radien und die Orientierungen der Ellipsen, die die gleiche Orientierung und das gleiche Seitenverhältnis wie die jeweiligen Eingabekonturn bzw. Eingabepolygone haben. Es wird die Länge der Hauptachse Ra und der Nebenachse Rb sowie die Orientierung der Hauptachse bezüglich der Horizontalen (Phi) bestimmt. Der Winkel wird dabei im Bogenmaß angegeben. Es wird vorausgesetzt, dass die Konturen bzw. die Polygone geschlossen sind. Ist das nicht der Fall, werden sie künstlich geschlossen.
Berechnung: Seien die Momente , und normiert auf die Fläche gegeben (siehe moments_xld), dann berechnen sich die Radien Ra und Rb zu:
Es ist zu beachten, dass elliptic_axis_xld 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_xld überprüft werden. Falls sich die Kontur oder das Polygon selbst schneidet, können sinnvolle Werte für die Ellipsenparameter mit elliptic_axis_points_xld berechnet werden.
Wird mehr als eine Kontur oder ein Polygon übergeben, dann werden die Ergebnisse in Tupeln in der Reihenfolge ihrer entsprechenden Konturen bzw. Polygone in XLD abgespeichert.
Zu untersuchende Konturen oder Polygone.
Winkel zwischen Hauptachse und x-Achse (Bogenmaß).
Zusicherung: - pi / 2 < Phi && Phi <= pi / 2
Sei N die Anzahl der Punkte in der Kontur bzw. im Polygon, dann beträgt die Laufzeitkomplexität O(N).
elliptic_axis_xld 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>:) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
gen_contours_skeleton_xld, edges_sub_pix, threshold_sub_pix, gen_contour_polygon_xld, test_self_intersection_xld
area_center_xld, gen_ellipse_contour_xld
elliptic_axis_points_xld, smallest_rectangle2
moments_xld, smallest_circle_xld, smallest_rectangle1_xld, smallest_rectangle2_xld, shape_trans_xld
R. Haralick, L. Shapiro „Computer and Robot Vision“ Addison-Wesley, 1992, pp. 73-75
Foundation
| Operatoren |