generate_binary_structure#
- scipy.ndimage.generate_binary_structure(rank, connectivity)[Quelle]#
Generiert eine binäre Struktur für binäre morphologische Operationen.
- Parameter:
- rankint
Anzahl der Dimensionen des Arrays, auf das das Strukturierungselement angewendet wird, wie zurückgegeben von np.ndim.
- connectivityint
connectivity bestimmt, welche Elemente des Ausgabe-Arrays zur Struktur gehören, d. h. als Nachbarn des zentralen Elements betrachtet werden. Elemente bis zu einer quadrierten Entfernung von connectivity vom Zentrum werden als Nachbarn betrachtet. connectivity kann von 1 (keine diagonalen Elemente sind Nachbarn) bis rank (alle Elemente sind Nachbarn) reichen.
- Rückgabe:
- outputndarray von booleschen Werten
Strukturierungselement, das für binäre morphologische Operationen verwendet werden kann, mit rank Dimensionen und allen Dimensionen gleich 3.
Siehe auch
Hinweise
generate_binary_structurekann nur Strukturierungselemente mit Dimensionen gleich 3 erstellen, d. h. minimale Dimensionen. Für größere Strukturierungselemente, die z. B. für die Erosion großer Objekte nützlich sind, kann entwederiterate_structureverwendet werden, oder es können direkt benutzerdefinierte Arrays mit numpy-Funktionen wienumpy.oneserstellt werden.Beispiele
>>> from scipy import ndimage >>> import numpy as np >>> struct = ndimage.generate_binary_structure(2, 1) >>> struct array([[False, True, False], [ True, True, True], [False, True, False]], dtype=bool) >>> a = np.zeros((5,5)) >>> a[2, 2] = 1 >>> a array([[ 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0.], [ 0., 0., 1., 0., 0.], [ 0., 0., 0., 0., 0.], [ 0., 0., 0., 0., 0.]]) >>> b = ndimage.binary_dilation(a, structure=struct).astype(a.dtype) >>> b array([[ 0., 0., 0., 0., 0.], [ 0., 0., 1., 0., 0.], [ 0., 1., 1., 1., 0.], [ 0., 0., 1., 0., 0.], [ 0., 0., 0., 0., 0.]]) >>> ndimage.binary_dilation(b, structure=struct).astype(a.dtype) array([[ 0., 0., 1., 0., 0.], [ 0., 1., 1., 1., 0.], [ 1., 1., 1., 1., 1.], [ 0., 1., 1., 1., 0.], [ 0., 0., 1., 0., 0.]]) >>> struct = ndimage.generate_binary_structure(2, 2) >>> struct array([[ True, True, True], [ True, True, True], [ True, True, True]], dtype=bool) >>> struct = ndimage.generate_binary_structure(3, 1) >>> struct # no diagonal elements array([[[False, False, False], [False, True, False], [False, False, False]], [[False, True, False], [ True, True, True], [False, True, False]], [[False, False, False], [False, True, False], [False, False, False]]], dtype=bool)