grey_dilation#
- scipy.ndimage.grey_dilation(input, size=None, footprint=None, structure=None, output=None, mode='reflect', cval=0.0, origin=0, *, axes=None)[Quelle]#
Berechnet eine Graustufen-Dilation unter Verwendung eines Strukturierungselements oder eines Fußabdrucks, der einem flachen Strukturierungselement entspricht.
Die Graustufen-Dilation ist eine mathematische morphologische Operation. Für den einfachen Fall eines vollen und flachen Strukturierungselements kann sie als Maximumfilter über ein gleitendes Fenster betrachtet werden.
- Parameter:
- inputarray_like
Array, über das die Graustufen-Dilation berechnet werden soll.
- sizetuple of ints
Form eines flachen und vollen Strukturierungselements, das für die Graustufen-Dilation verwendet wird. Optional, wenn footprint oder structure angegeben sind.
- footprintarray of ints, optional
Positionen von nicht-unendlichen Elementen eines flachen Strukturierungselements, die für die Graustufen-Dilation verwendet werden. Nicht-Null-Werte geben die Menge der Nachbarn des Zentrums an, über die das Maximum ausgewählt wird.
- structurearray of ints, optional
Strukturierungselement, das für die Graustufen-Dilation verwendet wird. structure kann ein nicht-flaches Strukturierungselement sein. Das Array structure wendet einen additiven Versatz für jedes Pixel in der Nachbarschaft an.
- outputarray, optional
Ein Array zur Speicherung der Ausgabe der Dilation kann bereitgestellt werden.
- mode{‘reflect’,’constant’,’nearest’,’mirror’, ‘wrap’}, optional
Der Parameter mode bestimmt, wie die Array-Ränder behandelt werden, wobei cval der Wert ist, wenn mode gleich ‘constant’ ist. Standard ist ‘reflect’
- cvalskalar, optional
Wert, mit dem die Ränder der Eingabe gefüllt werden, wenn mode ‘constant’ ist. Standard ist 0.0.
- originscalar, optional
Der Parameter origin steuert die Platzierung des Filters. Standard ist 0
- axestuple von int oder None
Die Achsen, über die der Filter angewendet wird. Wenn None, wird input über alle Achsen gefiltert. Wenn ein origin-Tupel angegeben wird, muss seine Länge mit der Anzahl der Achsen übereinstimmen.
- Rückgabe:
- grey_dilationndarray
Graustufen-Dilation von input.
Siehe auch
Hinweise
Die Graustufen-Dilation eines Bildes `input` mit einem Strukturierungselement `s`, das über einer Domäne `E` definiert ist, ist gegeben durch
(input+s)(x) = max {input(y) + s(x-y), für y in E}
Insbesondere für Strukturierungselemente, die als s(y) = 0 für y in E definiert sind, berechnet die Graustufen-Dilation das Maximum des Eingangsbildes innerhalb eines durch E definierten gleitenden Fensters.
Graustufen-Dilation [1] ist eine Operation der *mathematischen Morphologie* [2].
Referenzen
Beispiele
>>> from scipy import ndimage >>> import numpy as np >>> a = np.zeros((7,7), dtype=int) >>> a[2:5, 2:5] = 1 >>> a[4,4] = 2; a[2,3] = 3 >>> a array([[0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 3, 1, 0, 0], [0, 0, 1, 1, 1, 0, 0], [0, 0, 1, 1, 2, 0, 0], [0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0]]) >>> ndimage.grey_dilation(a, size=(3,3)) array([[0, 0, 0, 0, 0, 0, 0], [0, 1, 3, 3, 3, 1, 0], [0, 1, 3, 3, 3, 1, 0], [0, 1, 3, 3, 3, 2, 0], [0, 1, 1, 2, 2, 2, 0], [0, 1, 1, 2, 2, 2, 0], [0, 0, 0, 0, 0, 0, 0]]) >>> ndimage.grey_dilation(a, footprint=np.ones((3,3))) array([[0, 0, 0, 0, 0, 0, 0], [0, 1, 3, 3, 3, 1, 0], [0, 1, 3, 3, 3, 1, 0], [0, 1, 3, 3, 3, 2, 0], [0, 1, 1, 2, 2, 2, 0], [0, 1, 1, 2, 2, 2, 0], [0, 0, 0, 0, 0, 0, 0]]) >>> s = ndimage.generate_binary_structure(2,1) >>> s array([[False, True, False], [ True, True, True], [False, True, False]], dtype=bool) >>> ndimage.grey_dilation(a, footprint=s) array([[0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 3, 1, 0, 0], [0, 1, 3, 3, 3, 1, 0], [0, 1, 1, 3, 2, 1, 0], [0, 1, 1, 2, 2, 2, 0], [0, 0, 1, 1, 2, 0, 0], [0, 0, 0, 0, 0, 0, 0]]) >>> ndimage.grey_dilation(a, size=(3,3), structure=np.ones((3,3))) array([[1, 1, 1, 1, 1, 1, 1], [1, 2, 4, 4, 4, 2, 1], [1, 2, 4, 4, 4, 2, 1], [1, 2, 4, 4, 4, 3, 1], [1, 2, 2, 3, 3, 3, 1], [1, 2, 2, 3, 3, 3, 1], [1, 1, 1, 1, 1, 1, 1]])