eccentricity_points_xld
— Anisometrie von Konturen oder Polygonen, die wie Punktwolken behandelt
werden.
eccentricity_points_xld(XLD : : : Anisometry)
eccentricity_points_xld
berechnet das Formmerkmal
Anisometry
, das aus den geometrischen Momenten abgeleitet
wird. Im Gegensatz zu eccentricity_xld
werden nur die
Eigenschaften der Konturpunkte, nicht die der durch die Kontur
eingeschlossenen Fläche berechnet. Die Reihenfolge der Kontur- oder
Polygonpunkte wird nicht berücksichtigt. Bei
geschlossenen Konturen oder Polygonen (Anfangspunkt = Endpunkt) wird
der Endpunkt der Kontur oder des Polygons nicht berücksichtigt, da
er sonst doppeltes Gewicht erhielte.
Ist die Kontur XLD
nicht kreuzungsfrei oder kann sie nicht
kreuzungsfrei durch eine Line vom End- zum Anfangspunkt geschlossen
werden, liefert eccentricity_points_xld
immer noch sinnvolle
Ergebnisse und ist in diesem Fall eccentricity_xld
vorzuziehen. Ob sich die Konturen oder Polygone selbst schneiden, kann
leicht mit test_self_intersection_xld
überprüft werden.
Berechnung:
Seien die Ellipsenradien Ra, Rb
(siehe elliptic_axis_points_xld
) gegeben, dann gilt:
Die Anisometrie eines Kreises ist 1.0.
Wird mehr als eine Kontur oder ein Polygon übergeben, dann werden
die Ergebnisse für die Anisometrie in einem Tupel in der Reihenfolge
ihrer entsprechenden Konturen bzw. Polygone in XLD
abgespeichert.
XLD
(input_object) xld(-array) →
object
Zu untersuchende Konturen bzw. Polygone.
Anisometry
(output_control) real(-array) →
(real)
Anisometrie der Konturen bzw. Polygone.
Zusicherung: Anisometry >= 1.0
eccentricity_points_xld
liefert den Wert 2 (H_MSG_TRUE), falls die
Eingabe nicht leer ist. Das Verhalten bei leerer Eingabe (keine
Eingabekontur vorhanden) 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
elliptic_axis_points_xld
,
moments_region_2nd
,
select_shape_xld
Foundation