scipy.ndimage.

grey_erosion#

scipy.ndimage.grey_erosion(input, size=None, footprint=None, structure=None, output=None, mode='reflect', cval=0.0, origin=0, *, axes=None)[Quelle]#

Berechnet eine Graustufen-Erosion unter Verwendung eines Strukturelements oder eines Footprints, der einem flachen Strukturelement entspricht.

Graustufen-Erosion ist eine Operation der mathematischen Morphologie. Für den einfachen Fall eines vollen und flachen Strukturelements kann sie als Minimumfilter über ein gleitendes Fenster betrachtet werden.

Parameter:
inputarray_like

Array, über das die Graustufen-Erosion berechnet werden soll.

sizetuple of ints

Form eines flachen und vollen Strukturelements, das für die Graustufen-Erosion verwendet wird. Optional, wenn footprint oder structure angegeben ist.

footprintarray of ints, optional

Positionen von nicht-unendlichen Elementen eines flachen Strukturelements, das für die Graustufen-Erosion verwendet wird. Nicht-Null-Werte geben die Menge der Nachbarn des Zentrums an, über die das Minimum gewählt wird.

structurearray of ints, optional

Strukturelement, das für die Graustufen-Erosion verwendet wird. structure kann ein nicht-flaches Strukturelement sein. Das Array structure wendet einen subtraktiven Offset für jedes Pixel in der Nachbarschaft an.

outputarray, optional

Ein Array, das zur Speicherung des Ergebnisses der Erosion verwendet werden kann, wird bereitgestellt.

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:
outputndarray

Graustufen-Erosion von input.

Hinweise

Die Graustufen-Erosion eines Bildes `input` mit einem Strukturelement `s`, das über eine Domäne `E` definiert ist, ergibt sich wie folgt:

(input+s)(x) = min {input(y) - s(x-y), für y in E}

Insbesondere für Strukturelemente, die als s(y) = 0 für y in E definiert sind, berechnet die Graustufen-Erosion das Minimum des Eingabebildes innerhalb eines gleitenden Fensters, das durch E definiert ist.

Graustufen-Erosion [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[1:6, 1:6] = 3
>>> a[4,4] = 2; a[2,3] = 1
>>> a
array([[0, 0, 0, 0, 0, 0, 0],
       [0, 3, 3, 3, 3, 3, 0],
       [0, 3, 3, 1, 3, 3, 0],
       [0, 3, 3, 3, 3, 3, 0],
       [0, 3, 3, 3, 2, 3, 0],
       [0, 3, 3, 3, 3, 3, 0],
       [0, 0, 0, 0, 0, 0, 0]])
>>> ndimage.grey_erosion(a, size=(3,3))
array([[0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0],
       [0, 0, 1, 1, 1, 0, 0],
       [0, 0, 1, 1, 1, 0, 0],
       [0, 0, 3, 2, 2, 0, 0],
       [0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0]])
>>> footprint = ndimage.generate_binary_structure(2, 1)
>>> footprint
array([[False,  True, False],
       [ True,  True,  True],
       [False,  True, False]], dtype=bool)
>>> # Diagonally-connected elements are not considered neighbors
>>> ndimage.grey_erosion(a, footprint=footprint)
array([[0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0],
       [0, 0, 1, 1, 1, 0, 0],
       [0, 0, 3, 1, 2, 0, 0],
       [0, 0, 3, 2, 2, 0, 0],
       [0, 0, 0, 0, 0, 0, 0],
       [0, 0, 0, 0, 0, 0, 0]])