median_filter#

ndfilters.median_filter(array, size, axis=None, where=True, mode='mirror')[source]#

Calculate a multidimensional rolling median.

Parameters:
  • array (ndarray | Quantity) – The input array to be filtered

  • size (int | tuple[int, ...]) – The shape of the kernel over which the mean will be calculated.

  • axis (None | int | tuple[int, ...]) – The axes over which to apply the kernel. Should either be a scalar or have the same number of items as size. If None (the default) the kernel spans every axis of the array.

  • where (bool | ndarray) – An optional mask that can be used to exclude parts of the array during filtering.

  • mode (Literal['mirror', 'nearest', 'wrap', 'truncate']) – The method used to extend the input array beyond its boundaries. See scipy.ndimage.generic_filter() for the definitions. Currently, only “mirror”, “nearest”, “wrap”, and “truncate” modes are supported.

Return type:

A copy of the array with the mean filter applied.

Examples

import matplotlib.pyplot as plt
import scipy.datasets
import ndfilters

img = scipy.datasets.ascent()
img_filtered = ndfilters.median_filter(img, size=21)

fig, axs = plt.subplots(ncols=2, sharex=True, sharey=True)
axs[0].set_title("original image");
axs[0].imshow(img, cmap="gray");
axs[1].set_title("filtered image");
axs[1].imshow(img_filtered, cmap="gray");
../_images/ndfilters.median_filter_0_0.png