diameter_regiondiameter_regionDiameterRegionDiameterRegion (Operator)
Name
diameter_regiondiameter_regionDiameterRegionDiameterRegion
— Ermitteln des maximalen Abstands zweier Randpunkte einer Region.
Signatur
Herror diameter_region(const Hobject Regions, Hlong* Row1, Hlong* Column1, Hlong* Row2, Hlong* Column2, double* Diameter)
Herror T_diameter_region(const Hobject Regions, Htuple* Row1, Htuple* Column1, Htuple* Row2, Htuple* Column2, Htuple* Diameter)
void DiameterRegion(const HObject& Regions, HTuple* Row1, HTuple* Column1, HTuple* Row2, HTuple* Column2, HTuple* Diameter)
void HRegion::DiameterRegion(HTuple* Row1, HTuple* Column1, HTuple* Row2, HTuple* Column2, HTuple* Diameter) const
void HRegion::DiameterRegion(Hlong* Row1, Hlong* Column1, Hlong* Row2, Hlong* Column2, double* Diameter) const
static void HOperatorSet.DiameterRegion(HObject regions, out HTuple row1, out HTuple column1, out HTuple row2, out HTuple column2, out HTuple diameter)
void HRegion.DiameterRegion(out HTuple row1, out HTuple column1, out HTuple row2, out HTuple column2, out HTuple diameter)
void HRegion.DiameterRegion(out int row1, out int column1, out int row2, out int column2, out double diameter)
Beschreibung
diameter_regiondiameter_regionDiameterRegionDiameterRegionDiameterRegion
berechnet den
maximalen Abstand zweier Randpunkte einer Region.
Es werden die Koordiaten der beiden Extrempunkte und der
Abstand zwischen diesen Punkten zurückgegeben.
In der Dokumentation zu diesem Kapitel (Regionen / Merkmale) finden
Sie ein Bild mit Regionen, die sich in dem maximalen Abstands zweier
Randpunkte unterscheiden.
Achtung
Bei leerer Region kann das Ergebnis von Row1Row1Row1Row1row1
, Column1Column1Column1Column1column1
,
Row2Row2Row2Row2row2
und Column2Column2Column2Column2column2
(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
RegionsRegionsRegionsRegionsregions
(input_object) region(-array) →
objectHRegionHRegionHobject
Zu untersuchende Regionen.
Row1Row1Row1Row1row1
(output_control) line.begin.y(-array) →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Zeilenindex des ersten Extrempunktes.
Column1Column1Column1Column1column1
(output_control) line.begin.x(-array) →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Spaltenindex des ersten Extrempunktes.
Row2Row2Row2Row2row2
(output_control) line.end.y(-array) →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Zeilenindex des zweiten Extrempunktes.
Column2Column2Column2Column2column2
(output_control) line.end.x(-array) →
HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)
Spaltenindex des zweiten Extrempunktes.
DiameterDiameterDiameterDiameterdiameter
(output_control) number(-array) →
HTupleHTupleHtuple (real) (double) (double) (double)
Abstand der beiden Extrempunkte.
Komplexität
Sei F die Fläche einer Region, dann beträgt die
Laufzeitkomplexität im Mittel O(sqrt(F)).
Ergebnis
diameter_regiondiameter_regionDiameterRegionDiameterRegionDiameterRegion
liefert den Wert 2 (H_MSG_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>)
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>)
bestimmt.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
Vorgänger
thresholdthresholdThresholdThresholdThreshold
,
regiongrowingregiongrowingRegiongrowingRegiongrowingRegiongrowing
,
connectionconnectionConnectionConnectionConnection
,
runlength_featuresrunlength_featuresRunlengthFeaturesRunlengthFeaturesRunlengthFeatures
Nachfolger
disp_linedisp_lineDispLineDispLineDispLine
Alternativen
smallest_rectangle2smallest_rectangle2SmallestRectangle2SmallestRectangle2SmallestRectangle2
Modul
Foundation