select_region_spatial
— Ermitteln der Lagebeziehung von Regionen.
select_region_spatial(Regions1, Regions2 : : Direction : RegionIndex1, RegionIndex2)
select_region_spatial
wählt die Regionen aus Regions2
aus, die
der Nachbarschaftsbeziehung Direction
genügen.
Die zu untersuchenden Regionen sind in Regions1
bzw.
Regions2
zu übergeben. Regions1
kann dabei auf
drei verschiedene Arten besetzt werden:
Regions1
ist leer:
In diesem Fall werden alle Regionen in Regions2
permutativ auf Nachbarschaft getestet.
Regions1
besteht aus einer Region:
Die Regionen von Regions1
werden mit allen Regionen in
Regions2
verglichen.
Regions1
besteht aus gleich vielen Regionen wie
Regions2
:
Hier werden jeweils die Regionen an n-ter Position
in Regions1
und Regions2
auf die
Nachbarschaftsbeziehung untersucht.
Mögliche Werte für Direction
sind:
select_region_spatial
berechnet die Schwerpunkte der zu vergleichenden
Regionen und entscheidet anhand des Winkels zwischen der Schwerpunktgeraden
und der x-Achse, ob die Richtungsbeziehung erfüllt ist.
Die Relation ist jeweils in dem Bereich von -45 Grad bis +45 Grad
um die Koordinatenachsen erfüllt.
Die Richtungsrelation ist also so zu verstehen, dass der Schwerpunkt
der zweiten Region links (bzw. rechts, oben, unten) vom
Schwerpunkt der ersten Region liegen muss.
Die Indizes der Regionen, die die Richtungsbeziehung erfüllen, stehen
an n-ter Position in RegionIndex1
und RegionIndex2
,
d.h. die Region mit Index RegionIndex2
[n] steht mit Region mit
Index RegionIndex1
[n] in der angegebenen Relation.
Der Zugriff auf Regionen über den Index kann mit copy_obj
erfolgen.
Regions1
(input_object) region(-array) →
object
Ausgangsregionen
Regions2
(input_object) region(-array) →
object
Vergleichsregionen
Direction
(input_control) string →
(string)
Gewünschte Nachbarschaftsbeziehung.
Defaultwert: 'left'
Werteliste: 'above' , 'below' , 'left' , 'right'
RegionIndex1
(output_control) integer-array →
(integer)
RegionIndex2
(output_control) integer-array →
(integer)
select_region_spatial
liefert den Wert 2 (H_MSG_TRUE), falls Regions2
nicht leer ist. Das Verhalten bei
leerem Parameter Regions2
(keine Eingaberegionen vorhanden)
lässt sich mittels 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>)
bestimmt.
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
threshold
,
regiongrowing
,
connection
spatial_relation
,
find_neighbors
,
copy_obj
,
obj_to_integer
Foundation