smallest_rectangle2_xldsmallest_rectangle2_xldSmallestRectangle2XldSmallestRectangle2Xld (Operator)

Name

smallest_rectangle2_xldsmallest_rectangle2_xldSmallestRectangle2XldSmallestRectangle2Xld — Kleinstes umschließendes Rechteck mit beliebiger Orientierung von Konturen oder Polygonen.

Signatur

smallest_rectangle2_xld(XLD : : : Row, Column, Phi, Length1, Length2)

Herror smallest_rectangle2_xld(const Hobject XLD, double* Row, double* Column, double* Phi, double* Length1, double* Length2)

Herror T_smallest_rectangle2_xld(const Hobject XLD, Htuple* Row, Htuple* Column, Htuple* Phi, Htuple* Length1, Htuple* Length2)

void SmallestRectangle2Xld(const HObject& XLD, HTuple* Row, HTuple* Column, HTuple* Phi, HTuple* Length1, HTuple* Length2)

void HXLD::SmallestRectangle2Xld(HTuple* Row, HTuple* Column, HTuple* Phi, HTuple* Length1, HTuple* Length2) const

void HXLD::SmallestRectangle2Xld(double* Row, double* Column, double* Phi, double* Length1, double* Length2) const

static void HOperatorSet.SmallestRectangle2Xld(HObject XLD, out HTuple row, out HTuple column, out HTuple phi, out HTuple length1, out HTuple length2)

void HXLD.SmallestRectangle2Xld(out HTuple row, out HTuple column, out HTuple phi, out HTuple length1, out HTuple length2)

void HXLD.SmallestRectangle2Xld(out double row, out double column, out double phi, out double length1, out double length2)

Beschreibung

smallest_rectangle2_xldsmallest_rectangle2_xldSmallestRectangle2XldSmallestRectangle2XldSmallestRectangle2Xld bestimmt das kleinste umschließende Rechteck für jede Eingabekontur bzw. jedes Eingabepolygon, also das Rechteck mit dem kleinsten Flächeninhalt unter allen Rechtecken, die die Kontur enthalten. Für dieses Rechteck werden der Mittelpunkt, der Neigungswinkel und die beiden Halbmesser berechnet.

Wird mehr als eine Kontur oder ein Polygon übergeben, dann werden die Ergebnisse in Tupeln in der Reihenfolge ihrer entsprechenden Konturen bzw. Polygone in XLDXLDXLDXLDXLD abgespeichert. Bei leerer Kontur haben alle Parameter den Wert 0.0, soweit kein anderes Verhalten eingestellt wurde (siehe set_systemset_systemSetSystemSetSystemSetSystem).

Ausführungsinformationen

Parameter

XLDXLDXLDXLDXLD (input_object)  xld(-array) objectHXLDHXLDHobject

Zu untersuchende Konturen oder Polygone.

RowRowRowRowrow (output_control)  rectangle2.center.y(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Zeilenkoordinate des Mittelpunktes des umschließenden Rechtecks.

ColumnColumnColumnColumncolumn (output_control)  rectangle2.center.x(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Spaltenkoordinate des Mittelpunktes des umschließenden Rechtecks.

PhiPhiPhiPhiphi (output_control)  rectangle2.angle.rad(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Orientierung des umschließenden Rechtecks (Bogenmaß)

Zusicherung: - pi / 2 < Phi && Phi <= pi / 2

Length1Length1Length1Length1length1 (output_control)  rectangle2.hwidth(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Erster Halbmesser (halbe Länge) des umschließenden Rechtecks.

Zusicherung: Length1 >= 0.0

Length2Length2Length2Length2length2 (output_control)  rectangle2.hheight(-array) HTupleHTupleHtuple (real) (double) (double) (double)

Zweiter Halbmesser (halbe Breite) des umschließenden Rechtecks.

Zusicherung: Length2 >= 0.0 && Length2 <= Length1

Komplexität

Seien N die Anzahl der Punkte in der Kontur und C die Anzahl der Punkte der entsprechenden konvexen Hülle, dann beträgt die Laufzeitkomplexität O(N*ln(N)+C^2).

Ergebnis

smallest_rectangle2_xldsmallest_rectangle2_xldSmallestRectangle2XldSmallestRectangle2XldSmallestRectangle2Xld 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>:)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

Nachfolger

gen_polygons_xldgen_polygons_xldGenPolygonsXldGenPolygonsXldGenPolygonsXld

Alternativen

smallest_rectangle1smallest_rectangle1SmallestRectangle1SmallestRectangle1SmallestRectangle1, shape_trans_xldshape_trans_xldShapeTransXldShapeTransXldShapeTransXld

Siehe auch

smallest_rectangle1smallest_rectangle1SmallestRectangle1SmallestRectangle1SmallestRectangle1, smallest_circlesmallest_circleSmallestCircleSmallestCircleSmallestCircle, elliptic_axis_xldelliptic_axis_xldEllipticAxisXldEllipticAxisXldEllipticAxisXld

Modul

Foundation