morphological_gradient#
- scipy.ndimage.morphological_gradient(input, size=None, footprint=None, structure=None, output=None, mode='reflect', cval=0.0, origin=0, *, axes=None)[Quelle]#
Mehrdimensionaler morphologischer Gradient.
Der morphologische Gradient wird als Differenz zwischen einer Dilatation und einer Erosion der Eingabe mit einem gegebenen Strukturelement berechnet.
- Parameter:
- inputarray_like
Array, über das der morphologische Gradient berechnet wird.
- sizetuple of ints
Form eines flachen und vollständigen Strukturelements, das für die mathematischen Morphologieoperationen verwendet wird. Optional, wenn footprint oder structure angegeben ist. Ein größerer size ergibt einen unscharferen Gradienten.
- footprintarray of ints, optional
Positionen von nicht-unendlichen Elementen eines flachen Strukturelements, die für die Morphologieoperationen verwendet werden. Größere Footprints ergeben einen unscharferen morphologischen Gradienten.
- structurearray of ints, optional
Strukturelement, das für die Morphologieoperationen verwendet wird. structure kann ein nicht-flaches Strukturelement sein. Das Array structure wendet Offsets auf die Pixel in einer Nachbarschaft an (der Offset wird bei der Dilatation addiert und bei der Erosion subtrahiert).
- outputarray, optional
Ein Array zur Speicherung der Ausgabe des morphologischen Gradienten 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:
- morphological_gradientndarray
Morphologischer Gradient von input.
Siehe auch
Hinweise
Für ein flaches Strukturelement entspricht der morphologische Gradient, der an einem gegebenen Punkt berechnet wird, der maximalen Differenz zwischen den Elementen der Eingabe unter den Elementen, die vom auf den Punkt zentrierten Strukturelement abgedeckt werden.
Referenzen
Beispiele
>>> from scipy import ndimage >>> import numpy as np >>> a = np.zeros((7,7), dtype=int) >>> a[2:5, 2:5] = 1 >>> ndimage.morphological_gradient(a, size=(3,3)) array([[0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 0], [0, 1, 1, 0, 1, 1, 0], [0, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0]]) >>> # The morphological gradient is computed as the difference >>> # between a dilation and an erosion >>> ndimage.grey_dilation(a, size=(3,3)) -\ ... ndimage.grey_erosion(a, size=(3,3)) array([[0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 0], [0, 1, 1, 0, 1, 1, 0], [0, 1, 1, 1, 1, 1, 0], [0, 1, 1, 1, 1, 1, 0], [0, 0, 0, 0, 0, 0, 0]]) >>> 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.morphological_gradient(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, 2, 3, 2, 0], [0, 1, 1, 2, 2, 2, 0], [0, 1, 1, 2, 2, 2, 0], [0, 0, 0, 0, 0, 0, 0]])