medfilt2d#
- scipy.signal.medfilt2d(input, kernel_size=3)[Quelle]#
Medianfilter für ein 2-dimensionales Array.
Wendet einen Medianfilter auf das input-Array an, wobei eine lokale Fenstergröße verwendet wird, die durch kernel_size (muss ungerade sein) gegeben ist. Das Array wird automatisch mit Nullen aufgefüllt.
- Parameter:
- inputarray_like
Ein 2-dimensionales Eingabearray.
- kernel_sizearray_like, optional
Ein Skalar oder eine Liste mit 2 Elementen, die die Größe des Medianfilterfensters in jeder Dimension angibt. Elemente von kernel_size sollten ungerade sein. Wenn kernel_size ein Skalar ist, wird dieser Skalar als Größe in jeder Dimension verwendet. Standardmäßig ist der Kernel der Größe (3, 3).
- Rückgabe:
- outndarray
Ein Array gleicher Größe wie das Eingabearray, das das mediangefilterte Ergebnis enthält.
Siehe auch
Hinweise
Dies ist schneller als
medfilt, wenn der Eingabedatentypuint8,float32oderfloat64ist; für andere Typen greift dies aufmedfiltzurück. In einigen Situationen kannscipy.ndimage.median_filterschneller sein als diese Funktion.Beispiele
>>> import numpy as np >>> from scipy import signal >>> x = np.arange(25).reshape(5, 5) >>> x array([[ 0, 1, 2, 3, 4], [ 5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19], [20, 21, 22, 23, 24]])
# Ersetzt i,j durch den Median aus einem 5*5 Fenster
>>> signal.medfilt2d(x, kernel_size=5) array([[ 0, 0, 2, 0, 0], [ 0, 3, 7, 4, 0], [ 2, 8, 12, 9, 4], [ 0, 8, 12, 9, 0], [ 0, 0, 12, 0, 0]])
# Ersetzt i,j durch den Median aus dem standardmäßigen 3*3 Fenster
>>> signal.medfilt2d(x) array([[ 0, 1, 2, 3, 0], [ 1, 6, 7, 8, 4], [ 6, 11, 12, 13, 9], [11, 16, 17, 18, 14], [ 0, 16, 17, 18, 0]])
# Ersetzt i,j durch den Median aus dem standardmäßigen 5*3 Fenster
>>> signal.medfilt2d(x, kernel_size=[5,3]) array([[ 0, 1, 2, 3, 0], [ 0, 6, 7, 8, 3], [ 5, 11, 12, 13, 8], [ 5, 11, 12, 13, 8], [ 0, 11, 12, 13, 0]])
# Ersetzt i,j durch den Median aus dem standardmäßigen 3*5 Fenster
>>> signal.medfilt2d(x, kernel_size=[3,5]) array([[ 0, 0, 2, 1, 0], [ 1, 5, 7, 6, 3], [ 6, 10, 12, 11, 8], [11, 15, 17, 16, 13], [ 0, 15, 17, 16, 0]])
# Wie in den Beispielen zu sehen ist, müssen die Kernel-Zahlen ungerade sein und dürfen die ursprüngliche Array-Dimension nicht überschreiten