rectangularity_xldrectangularity_xldRectangularityXldRectangularityXld (Operator)

Name

rectangularity_xldrectangularity_xldRectangularityXldRectangularityXld — Formfaktor für die Rechteckigkeit von Konturen oder Polygonen.

Signatur

rectangularity_xld(XLD : : : Rectangularity)

Herror rectangularity_xld(const Hobject XLD, double* Rectangularity)

Herror T_rectangularity_xld(const Hobject XLD, Htuple* Rectangularity)

void RectangularityXld(const HObject& XLD, HTuple* Rectangularity)

HTuple HXLD::RectangularityXld() const

static void HOperatorSet.RectangularityXld(HObject XLD, out HTuple rectangularity)

HTuple HXLD.RectangularityXld()

Beschreibung

rectangularity_xldrectangularity_xldRectangularityXldRectangularityXldRectangularityXld berechnet die Rechteckigkeit für jede Eingabekontur bzw. jedes Eingabepolygon in XLDXLDXLDXLDXLD. Es muss darauf geachtet werden, dass sich die Eingabekonturen bzw. -polygone nicht selbst schneiden, da ansonsten der Ausgabeparameter keinen aussagekräftigen Wert enthält (Ob sich die Eingabekonturen bzw. -polygone selbst schneiden oder nicht, lässt sich mit test_self_intersection_xldtest_self_intersection_xldTestSelfIntersectionXldTestSelfIntersectionXldTestSelfIntersectionXld überprüfen). Sind die Eingabekonturen bzw. -polygone nicht geschlossen, so werden sie vor der Berechnung automatisch geschlossen.

Zur Bestimmung der Rechteckigkeit wird zunächst ein Rechteck ermittelt, das die gleichen ersten und zweiten Momente besitzt wie die Eingabekontur bzw. das Eingabepolygon. Die Berechnung des Rechteckigkeitsmaßes basiert schließlich auf der Fläche der Differenz zwischen dem ermittelten Rechteck und der Eingabekontur bzw. des Eingabepolygons normiert auf die Fläche des Rechtecks.

Für Rechtecke liefert rectangularity_xldrectangularity_xldRectangularityXldRectangularityXldRectangularityXld den Wert 1 zurück. Je weniger die Eingabekonturen bzw. -polygone einem Rechteck gleichen, desto geringer ist RectangularityRectangularityRectangularityRectangularityrectangularity. Wird mehr als eine Kontur bzw. ein Polygon übergeben,dann werden die Zahlenwerte für die Rechteckigkeit in einem Tupel abgespeichert, wobei die Position eines Wertes in dem Tupel der Position der Kontur bzw. des Polygons im Eingabetupel XLDXLDXLDXLDXLD entspricht.

Achtung

Bei Eingabekonturen bzw. -polygone, deren Orientierung über Momente zweiter Ordnung nicht definiert ist (wie es z.B. beim Quadrat der Fall ist), wird für RectangularityRectangularityRectangularityRectangularityrectangularity je nach Orientierung der Eingabekonturen bzw. -polygone ein bis zu 10% zu niedriger Wert zurückgeliefert.

Ausführungsinformationen

Parameter

XLDXLDXLDXLDXLD (input_object)  xld(-array) objectHXLDHXLDHobject

Zu untersuchende Konturen bzw. Polygone.

RectangularityRectangularityRectangularityRectangularityrectangularity (output_control)  real(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Rechteckigkeit der Eingabekonturen bzw. -polygone.

Zusicherung: 0 <= Rectangularity && Rectangularity <= 1.0

Ergebnis

rectangularity_xldrectangularity_xldRectangularityXldRectangularityXldRectangularityXld liefert den Wert 2 (H_MSG_TRUE), falls die Eingabe nicht leer ist. Das Verhalten bei leerer Eingabe (keine Eingabekonturen bzw. -polygone 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>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

gen_contours_skeleton_xldgen_contours_skeleton_xldGenContoursSkeletonXldGenContoursSkeletonXldGenContoursSkeletonXld, edges_sub_pixedges_sub_pixEdgesSubPixEdgesSubPixEdgesSubPix, threshold_sub_pixthreshold_sub_pixThresholdSubPixThresholdSubPixThresholdSubPix, gen_contour_polygon_xldgen_contour_polygon_xldGenContourPolygonXldGenContourPolygonXldGenContourPolygonXld, test_self_intersection_xldtest_self_intersection_xldTestSelfIntersectionXldTestSelfIntersectionXldTestSelfIntersectionXld

Alternativen

circularity_xldcircularity_xldCircularityXldCircularityXldCircularityXld, convexity_xldconvexity_xldConvexityXldConvexityXldConvexityXld, compactness_xldcompactness_xldCompactnessXldCompactnessXldCompactnessXld, eccentricity_xldeccentricity_xldEccentricityXldEccentricityXldEccentricityXld

Siehe auch

area_center_xldarea_center_xldAreaCenterXldAreaCenterXldAreaCenterXld, select_shape_xldselect_shape_xldSelectShapeXldSelectShapeXldSelectShapeXld

Literatur

P. L. Rosin: „Measuring rectangularity“; Machine Vision and Applications; vol. 11; pp. 191-196; Springer-Verlag, 1999.

Modul

Foundation