scipy.ndimage.
maximum_filter
(
input
,
size=None
,
footprint=None
,
output=None
,
mode='reflect'
,
cval=0.0
,
origin=0
)
[source]
Calculate a multi-dimensional maximum filter.
Parameters
input
array_like
The input array.
size
scalar or tuple, optional
See footprint, below. Ignored if footprint is given.
footprint
array, optional
Either
size
or
footprint
must be defined.
size
gives
the shape that is taken from the input array, at every element
position, to define the input to the filter function.
footprint
is a boolean array that specifies (implicitly) a
shape, but also which of the elements within this shape will get
passed to the filter function. Thus
size=(n,m)
is equivalent
to
footprint=np.ones((n,m))
. We adjust
size
to the number
of dimensions of the input array, so that, if the input array is
shape (10,10,10), and
size
is 2, then the actual size used is
(2,2,2). When
footprint
is given,
size
is ignored.
output
array or dtype, optional
The array in which to place the output, or the dtype of the
returned array. By default an array of the same dtype as input
will be created.
mode
str or sequence, optional
The
mode
parameter determines how the input array is extended
when the filter overlaps a border. By passing a sequence of modes
with length equal to the number of dimensions of the input array,
different modes can be specified along each axis. Default value is
‘reflect’. The valid values and their behavior is as follows:
‘reflect’ (
d c b a | a b c d | d c b a
)
The input is extended by reflecting about the edge of the last
pixel.
‘constant’ (
k k k k | a b c d | k k k k
)
The input is extended by filling all values beyond the edge with
the same constant value, defined by the
cval
parameter.
‘nearest’ (
a a a a | a b c d | d d d d
)
The input is extended by replicating the last pixel.
‘mirror’ (
d c b | a b c d | c b a
)
The input is extended by reflecting about the center of the last
pixel.
‘wrap’ (
a b c d | a b c d | a b c d
)
The input is extended by wrapping around to the opposite edge.
cval
scalar, optional
Value to fill past edges of input if
mode
is ‘constant’. Default
is 0.0.
origin
int or sequence, optional
Controls the placement of the filter on the input array’s pixels.
A value of 0 (the default) centers the filter over the pixel, with
positive values shifting the filter to the left, and negative ones
to the right. By passing a sequence of origins with length equal to
the number of dimensions of the input array, different shifts can
be specified along each axis.
Returns
maximum_filter
ndarray
Filtered array. Has the same shape as
input
.
>>> from scipy import ndimage, misc
>>> import matplotlib.pyplot as plt
>>> fig = plt.figure()
>>> plt.gray() # show the filtered result in grayscale
>>> ax1 = fig.add_subplot(121) # left side
>>> ax2 = fig.add_subplot(122) # right side
>>> ascent = misc.ascent()
>>> result = ndimage.maximum_filter(ascent, size=20)
>>> ax1.imshow(ascent)
>>> ax2.imshow(result)
>>> plt.show()