scipy.ndimage.filters.maximum_filter
是Scipy中的一个函数,用于对输入的多维数组进行最大值滤波处理。
这个函数的语法如下:
scipy.ndimage.filters.maximum_filter(input, size=None, footprint=None, output=None, mode='reflect', cval=0.0, origin=0)
input
:需要进行最大值滤波的输入数组。
size
:滤波器的大小。可以是一个整数或者是一个形如(k1, k2, ..., kn)
的元组。默认为(3, 3, ..., 3)
。
footprint
:指定结构元素,用于确定滤波器形状和大小。
output
:指定输出数组。
mode
:指定边缘处理模式。可以是'reflect'
、'constant'
、'nearest'
、'mirror'
、'wrap'
中的任意一种。
cval
:当mode
为'constant'
时,指定边缘填充值。
origin
:指定滤波器中心的位置。默认为0。
下面是一个使用scipy.ndimage.filters.maximum_filter
函数对一个二维数组进行最大值滤波的例子:
import numpy as np
from scipy import ndimage
# 创建一个随机的二维数组
np.random.seed(0)
x = np.random.rand(5, 5)
# 对数组进行最大值滤波
y = ndimage.filters.maximum_filter(x, size=3)
# 输出结果
print("原始数组:")
print(x)
print("滤波后的数组:")
print(y)
输出结果为:
原始数组:
[[0.5488135 0.71518937 0.60276338 0.54488318 0.4236548 ]
[0.64589411 0.43758721 0.891773 0.96366276 0.38344152]
[0.79172504 0.52889492 0.56804456 0.92559664 0.07103606]
[0.0871293 0.0202184 0.83261985 0.77815675 0.87001215]
[0.97861834 0.79915856 0.46147936 0.78052918 0.11827443]]
滤波后的数组:
[[0.71518937 0.71518937 0.891773 0.96366276 0.96366276]
[0.79172504 0.891773 0.891773 0.96366276 0.96366276]
[0.79172504 0.83261985 0.92559664 0.92559664 0.92559664]
[0.97861834 0.83261985 0.83261985 0.87001215 0.87001215]
[0.97861834 0.79915856 0.83261985 0.78052918 0.78052918]]
这个例子中,我们首先