rectangularity_xldrectangularity_xldRectangularityXldRectangularityXldrectangularity_xld (Operator)

Name

rectangularity_xldrectangularity_xldRectangularityXldRectangularityXldrectangularity_xld — 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()

def rectangularity_xld(xld: HObject) -> Sequence[float]

def rectangularity_xld_s(xld: HObject) -> float

Beschreibung

rectangularity_xldrectangularity_xldRectangularityXldRectangularityXldRectangularityXldrectangularity_xld berechnet die Rechteckigkeit für jede Eingabekontur bzw. jedes Eingabepolygon in XLDXLDXLDXLDXLDxld. 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_xldTestSelfIntersectionXldTestSelfIntersectionXldTestSelfIntersectionXldtest_self_intersection_xld ü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_xldRectangularityXldRectangularityXldRectangularityXldrectangularity_xld den Wert 1 zurück. Je weniger die Eingabekonturen bzw. -polygone einem Rechteck gleichen, desto geringer ist RectangularityRectangularityRectangularityRectangularityrectangularityrectangularity. 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 XLDXLDXLDXLDXLDxld 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 RectangularityRectangularityRectangularityRectangularityrectangularityrectangularity je nach Orientierung der Eingabekonturen bzw. -polygone ein bis zu 10% zu niedriger Wert zurückgeliefert.

Ausführungsinformationen

Parameter

XLDXLDXLDXLDXLDxld (input_object)  xld(-array) objectHXLDHObjectHXLDHobject

Zu untersuchende Konturen bzw. Polygone.

RectangularityRectangularityRectangularityRectangularityrectangularityrectangularity (output_control)  real(-array) HTupleSequence[float]HTupleHtuple (real) (double) (double) (double)

Rechteckigkeit der Eingabekonturen bzw. -polygone.

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

Ergebnis

rectangularity_xldrectangularity_xldRectangularityXldRectangularityXldRectangularityXldrectangularity_xld liefert den Wert 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>)set_system("no_object_result",<Result>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

gen_contours_skeleton_xldgen_contours_skeleton_xldGenContoursSkeletonXldGenContoursSkeletonXldGenContoursSkeletonXldgen_contours_skeleton_xld, edges_sub_pixedges_sub_pixEdgesSubPixEdgesSubPixEdgesSubPixedges_sub_pix, threshold_sub_pixthreshold_sub_pixThresholdSubPixThresholdSubPixThresholdSubPixthreshold_sub_pix, gen_contour_polygon_xldgen_contour_polygon_xldGenContourPolygonXldGenContourPolygonXldGenContourPolygonXldgen_contour_polygon_xld, test_self_intersection_xldtest_self_intersection_xldTestSelfIntersectionXldTestSelfIntersectionXldTestSelfIntersectionXldtest_self_intersection_xld

Alternativen

circularity_xldcircularity_xldCircularityXldCircularityXldCircularityXldcircularity_xld, convexity_xldconvexity_xldConvexityXldConvexityXldConvexityXldconvexity_xld, compactness_xldcompactness_xldCompactnessXldCompactnessXldCompactnessXldcompactness_xld, eccentricity_xldeccentricity_xldEccentricityXldEccentricityXldEccentricityXldeccentricity_xld

Siehe auch

area_center_xldarea_center_xldAreaCenterXldAreaCenterXldAreaCenterXldarea_center_xld, select_shape_xldselect_shape_xldSelectShapeXldSelectShapeXldSelectShapeXldselect_shape_xld

Literatur

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

Modul

Foundation