minkowski_add1
— Ausdehnen von Regionen.
minkowski_add1(Region, StructElement : RegionMinkAdd : Iterations : )
minkowski_add1
berechnet die Minkowski-Addition der
Eingaberegionen mit einem strukturierenden Element. Die Anwendung
von minkowski_add1
glättet die Ränder der Regionen.
Gleichzeitig vergrößert sich die Fläche dieser Regionen.
Darüberhinaus kann es vorkommen, dass vorher nicht
zusammenhängende Regionen verschmolzen werden. Dennoch bleiben
solche Regionen logisch verschiedene Region. Die Minkowski-Addition
ist eine mengentheoretische Regionenoperation. Sie basiert auf
Translation und Vereinigung.
Seien M StructElement
und R (Region
)
Regionen, wobei M das „strukturierende Element“ und R die zu
verarbeitende Region darstellt. Sei weiterhin m ein Punkt aus
M, dann wird der Verschiebungsvektor definiert als die Differenz des
Schwerpunktvektors von M mit dem Vektor . Die
Translation einer Region R um einen Vektor sei
mit bezeichnet. Dann ist
Es wird für jeden Punkt m in M eine Translation mit der Region
R durchgeführt. Die Vereinigung über all diese Verschiebungen
ist die Dilatation der Region R mit M. Der Unterschied zwischen
minkowski_add1
und dilation1
ist die
Punktspiegelung des strukturierenden Elements (Negation des
Verschiebungsvektors) bei dilation1
. Die Position von
StructElement
ist ohne Bedeutung, da die
Verschiebungsvektoren bzgl. des Schwerpunktes bestimmt werden.
Der Parameter Iterations
bezeichnet die Anzahl der
Iterationen, die mit dem strukturierenden Element ausgeführt werden
sollen. Als Eingaberegion für die n-te Iteration wird die
Ergebnisregion der (n-1)-ten Iteration verwendet. Aus der obigen
Definition ergibt sich, dass bei einem leeren strukturierenden
Element eine leere Region erzeugt wird.
Strukturierende Elemente (StructElement
) können mit
Operatoren wie gen_circle
, gen_rectangle1
,
gen_rectangle2
, gen_ellipse
,
draw_region
, gen_region_polygon
,
gen_region_points
etc. erzeugt werden.
Eine Minkowski-Addition führt grundsätzlich zu einer
Vergrößerung der Regionen. Eng benachbarte Regionen, die nach
Ausführung des Operators zusammenstoßen oder sich überlappen
werden weiterhin als zwei getrennte Regionen behandelt. Um eine
Vereinigung zweier Regionen zu erreichen muss zuerst ein
union1
durchgeführt werden.
Region
(input_object) region(-array) →
object
Regionen die verarbeitet werden sollen.
StructElement
(input_object) region →
object
Strukturierendes Element.
RegionMinkAdd
(output_object) region(-array) →
object
Ergebnis der Minkowski-Addition.
Iterations
(input_control) integer →
(integer)
Anzahl der Iterationen.
Defaultwert: 1
Wertevorschläge: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 15, 17, 20, 30, 40, 50
Typischer Wertebereich: 1
≤
Iterations
(lin)
Minimale Schrittweite: 1
Empfohlene Schrittweite: 1
Sei F1 die Fläche einer Eingaberegion und F2 die Fläche des strukturierenden Elementes, dann ist die Laufzeitkomplexität für ein Objekt:
Bei korrekter Parametrisierung liefert die Funktion
minkowski_add1
den Wert 2 (H_MSG_TRUE). Das Funktionsverhalten
für die beiden Fälle leere und keine Eingaberegion lässt sich wie
folgt kontrollieren:
keine Region: set_system('no_object_result',<RegionResult>)
leere Region: set_system('empty_region_result',<RegionResult>)
Andernfalls wird eine Fehlerbehandlung durchgeführt.
threshold
,
regiongrowing
,
connection
,
union1
,
watersheds
,
class_ndim_norm
,
gen_circle
,
gen_ellipse
,
gen_rectangle1
,
gen_rectangle2
,
draw_region
,
gen_region_points
,
gen_region_polygon_filled
reduce_domain
,
select_shape
,
area_center
,
connection
transpose_region
,
minkowski_sub1
Foundation