smallest_rectangle1smallest_rectangle1SmallestRectangle1SmallestRectangle1smallest_rectangle1 (Operator)
Name
smallest_rectangle1smallest_rectangle1SmallestRectangle1SmallestRectangle1smallest_rectangle1 — Ermitteln des umschließenden Rechtecks parallel zu den Koordinatenachsen.
Signatur
void SmallestRectangle1(const HObject& Regions, HTuple* Row1, HTuple* Column1, HTuple* Row2, HTuple* Column2)
void HRegion::SmallestRectangle1(HTuple* Row1, HTuple* Column1, HTuple* Row2, HTuple* Column2) const
void HRegion::SmallestRectangle1(Hlong* Row1, Hlong* Column1, Hlong* Row2, Hlong* Column2) const
static void HOperatorSet.SmallestRectangle1(HObject regions, out HTuple row1, out HTuple column1, out HTuple row2, out HTuple column2)
void HRegion.SmallestRectangle1(out HTuple row1, out HTuple column1, out HTuple row2, out HTuple column2)
void HRegion.SmallestRectangle1(out int row1, out int column1, out int row2, out int column2)
def smallest_rectangle1(regions: HObject) -> Tuple[Sequence[int], Sequence[int], Sequence[int], Sequence[int]]
def smallest_rectangle1_s(regions: HObject) -> Tuple[int, int, int, int]
Beschreibung
smallest_rectangle1smallest_rectangle1SmallestRectangle1SmallestRectangle1SmallestRectangle1smallest_rectangle1 berechnet das umschließende Rechteck
aller Eingaberegionen (parallel zu den Koordinatenachsen).
Das umschließende Rechteck wird durch die Koordinaten der Eckpunkte
(Row1Row1Row1Row1row1row_1,Column1Column1Column1Column1column1column_1,Row2Row2Row2Row2row2row_2,Column2Column2Column2Column2column2column_2)
beschrieben. Die Berechnung des Rechtecks basiert auf den
Mittelpunktskoordinaten der Regionenpixel.
Wird mehr als eine Region in RegionsRegionsRegionsRegionsregionsregions übergeben, dann werden
die Ergebnisse in Tupeln abgespeichert, wobei der Index eines Wertes im
Tupel dem Index einer Region in der Eingabe entspricht.
Bei leerer Region haben alle Parameter den Wert 0, soweit kein
anderes Verhalten eingestellt wurde (siehe set_systemset_systemSetSystemSetSystemSetSystemset_system).
Achtung
Bei leerer Region kann das Ergebnis von Row1Row1Row1Row1row1row_1,Column1Column1Column1Column1column1column_1,
Row2Row2Row2Row2row2row_2 und Column2Column2Column2Column2column2column_2 (alle sind 0) zu Konfusionen führen.
Ausführungsinformationen
- Multithreading-Typ: reentrant (läuft parallel zu nicht-exklusiven Operatoren).
- Multithreading-Bereich: global (kann von jedem Thread aufgerufen werden).
- Automatisch parallelisiert auf Tupelebene.
Parameter
RegionsRegionsRegionsRegionsregionsregions (input_object) region(-array) → objectHRegionHObjectHRegionHobject
Zu untersuchende Regionen.
Row1Row1Row1Row1row1row_1 (output_control) rectangle.origin.y(-array) → HTupleSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Zeilenindex des linken oberen Eckpunkts.
Column1Column1Column1Column1column1column_1 (output_control) rectangle.origin.x(-array) → HTupleSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Spaltenindex des linken oberen Eckpunkts.
Row2Row2Row2Row2row2row_2 (output_control) rectangle.corner.y(-array) → HTupleSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Zeilenindex des rechten unteren Eckpunkts.
Column2Column2Column2Column2column2column_2 (output_control) rectangle.corner.x(-array) → HTupleSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Spaltenindex des rechten unteren Eckpunkts.
Komplexität
Sei F die Fläche einer Region, dann beträgt die
Laufzeitkomplexität im Mittel O(sqrt(F)).
Ergebnis
smallest_rectangle1smallest_rectangle1SmallestRectangle1SmallestRectangle1SmallestRectangle1smallest_rectangle1 liefert den Wert TRUE, falls die Eingabe
nicht leer ist. Das Verhalten bei leerer Eingabe (keine Eingaberegionen
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.
Das Verhalten bei einer leeren Region (Region ist die leere Menge)
wird mit set_system('empty_region_result',<Result>)set_system("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)SetSystem("empty_region_result",<Result>)set_system("empty_region_result",<Result>) bestimmt.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
thresholdthresholdThresholdThresholdThresholdthreshold,
regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowingregiongrowing,
connectionconnectionConnectionConnectionConnectionconnection,
runlength_featuresrunlength_featuresRunlengthFeaturesRunlengthFeaturesRunlengthFeaturesrunlength_features
Nachfolger
disp_rectangle1disp_rectangle1DispRectangle1DispRectangle1DispRectangle1disp_rectangle1,
gen_rectangle1gen_rectangle1GenRectangle1GenRectangle1GenRectangle1gen_rectangle1
Alternativen
height_width_ratioheight_width_ratioHeightWidthRatioHeightWidthRatioHeightWidthRatioheight_width_ratio,
smallest_rectangle2smallest_rectangle2SmallestRectangle2SmallestRectangle2SmallestRectangle2smallest_rectangle2,
area_centerarea_centerAreaCenterAreaCenterAreaCenterarea_center
Siehe auch
select_shapeselect_shapeSelectShapeSelectShapeSelectShapeselect_shape
Modul
Foundation