scipy.ndimage.

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.

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]])