spatial_relation
— Ermitteln der Lagebeziehung von Regionen bzgl. der Koordinatenachsen.
spatial_relation(Regions1, Regions2 : : Percent : RegionIndex1, RegionIndex2, Relation1, Relation2)
spatial_relation
wählt Regionen aus, die um Percent
Prozent
„links“, „rechts“, „oberhalb“ oder „unterhalb“ von anderen Regionen
liegen.
Regions1
und Regions2
enthalten die zu vergleichenden
Regionen.
Regions1
kann dabei auf drei verschiedene Arten besetzt werden:
Regions1
enthält ein leeres Objekttupel,
d.h., count_obj
liefert 0 zurück:
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.
Der Prozentsatz Percent
wird so interpretiert, dass die
Fläche der zweiten Region um mindestens Percent
Prozent
echt links/rechts bzw. oberhalb/unterhalb der Regionengrenzen der
ersten Region liegen muss.
Die Indizes der Regionen, die mindestens eine dieser Bedingungen
erfüllen, stehen dann an n-ter Position in den Ausgabeparametern
RegionIndex1
und RegionIndex2
.
Zusätzlich enthalten die Ausgabeparameter Relation1
und
Relation2
an n-ter Position die Art der Relation, in der das
Regionenpaar (RegionIndex1
[n], RegionIndex2
[n]) steht,
d.h. Region mit Index RegionIndex2
[n] steht mit Region mit
Index RegionIndex1
[n] in der Relation1
[n] und
Relation2
[n].
Mögliche Werte für Relation1
und Relation2
sind:
'left', 'right' oder “
'above', 'below' oder “
In RegionIndex1
und RegionIndex2
werden die Indizes der
Regionen in den Tupeln der Eingaberegionen (Regions1
bzw.
Regions2
) als Bildidentifikatoren eingetragen.
Der Zugriff auf ausgewählte Regionen über den Index kann mit
copy_obj
erfolgen.
Regions1
(input_object) region(-array) →
object
Ausgangsregionen.
Regions2
(input_object) region(-array) →
object
Vergleichsregionen.
Percent
(input_control) integer →
(integer)
Prozentzahl der Fläche der Vergleichsregion, die links/rechts bzw. oberhalb/unterhalb der Regionengrenzen der Ausgangsregion liegen muss.
Defaultwert: 50
Wertevorschläge: 0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100
Typischer Wertebereich: 0
≤
Percent
≤
100
(lin)
Minimale Schrittweite: 1
Empfohlene Schrittweite: 10
Restriktion: 0 <= Percent && Percent <= 100
RegionIndex1
(output_control) integer-array →
(integer)
Indizes der Regionen im Tupel der Eingaberegionen, die die Lagerelation erfüllen.
RegionIndex2
(output_control) integer-array →
(integer)
Indizes der Regionen im Tupel der Eingaberegionen, die die Lagerelation erfüllen.
Relation1
(output_control) string-array →
(string)
Horizontale Lagerelation, in der
RegionIndex2
[n] mit
RegionIndex1
[n] steht.
Relation2
(output_control) string-array →
(string)
Vertikale Lagerelation, in der RegionIndex2
[n]
mit RegionIndex1
[n] steht.
spatial_relation
liefert den Wert 2 (H_MSG_TRUE), falls Regions2
nicht
leer und Percent
korrekt besetzt 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
select_region_spatial
,
find_neighbors
,
copy_obj
,
obj_to_integer
Foundation