| Operatoren |
interjacent — Unterteilen der Bildebene mittels vorgegebener Regionen.
interjacent ist veraltet und wird nur aus Gründen der Rückwärtskompatibilität zur Verfügung gestellt.
interjacent(Region : RegionInterjacent : Mode : )
interjacent unterteilt die Bildebene mittels der Regionen in Region. Als Ergebnis wird eine Ausgaberegion mit den ermittelten Trennlinien zurückgeliefert. Es stehen dafür drei verschiedene Modi zur Verfügung:
Dieser Modus wird für Eingaberegionen verwendet, die sich nicht berühren. Die Prozedur findet dann Trennlinien zwischen den Regionen, die den Hintergrund „gerecht“ zwischen den Eingaberegionen aufteilt. Ihre Anwendung entspricht der Ausführung folgender Befehlssequenz:
complement('full',Region,Tmp) skeleton(Tmp,Result)
Für einander nicht berührende Eingaberegionen entspricht die Prozedur in diesem Modus boundary(Region,Result), ersetzt also jeder Eingaberegion durch ihre Kontur. Einander berührende Eingaberegionen werden zu einer Region zusammengefasst. Die zugehörige Ausgaberegion umfasst dann deren Kontur und die (ein Pixel breite) Trennlinie zwischen den ursprünglichen Regionen. interjacent führt in diesem Fall also folgende Einzelschritte durch:
boundary(Region,Tmp1,'inner')
union1(Tmp1,Tmp2)
skeleton(Tmp2,Result)
In diesem Modus verhält sich interjacent für einander nicht berührende Eingaberegionen wie im Modus 'medial_axis'. Kommt es zu einer Berührung, werden zwar wiederum Trennlinien zwischen den Eingaberegionen als Ausgaberegionen erzeugt, nun aber inklusive der „Berührungslinie“ der Regionen. Einander berührende Regionen werden also (durch eine Linie in der Ausgaberegion) „getrennt“. Dies entspricht der Anweisungssequenz:
erosion1(Region,Mask,Tmp1,1) union1(Tmp1,Tmp2) complement(full,Tmp2,Tmp3) skeleton(Tmp3,Result) wobei Mask folgende „Kreuzmaske“ bezeichnet:
Eingaberegionen, zwischen deren Regionen Trennlinien gefunden werden sollen.
Eine Ausgaberegion mit den ermittelten Trennlinien als Region.
Gewünschter Modus.
Defaultwert: 'mixed'
Werteliste: 'border', 'medial_axis', 'mixed'
read_image(Image,'forest_air1') mean_image(Image,Mean,31,31) dyn_threshold(Image,Mean,Seg,20,'light') interjacent(Seg,Graph,'medial_axis') dev_display(Graph)
interjacent liefert normalerweise den Wert 2 (H_MSG_TRUE). Das Verhalten bei leerer Eingabe (keine Eingaberegionen vorhanden) lässt sich mittels set_system('no_object_result',<Result>), das bei leerer Region mit set_system('empty_region_result',<Result>) und das bei leerer Ergebnisregion mit set_system('store_empty_region',<'true'/'false'>) festlegen. Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
threshold, connection, regiongrowing, pouring
expand_region, junctions_skeleton, boundary
Foundation
| Operatoren |