python中scipy.signal.medfilt2d背后的概念

python中scipy.signal.medfilt2d背后的概念,python,matrix,numpy,scipy,Python,Matrix,Numpy,Scipy,我正在试图了解scipy.signal.medfilt2d是如何工作的。我查看了scipy文档后,其格式为: scipy.signal.medfilt2d(输入,内核大小=3) 如果我有一个矩阵,比如 1 2 3 7 2 4 3 4 2 2 6 7 1 7 3 1 2 6 3 2 3 4 3 1 2 6 7 8 2 5 3 4 2 2 1 8 因为内核大小默认设置为3。如果我将medfilt2d应用于该矩阵,该矩阵是否会变成如下所示的矩阵?(我所做的是将3 x 3框中的每个元素相加,然后除以9

我正在试图了解scipy.signal.medfilt2d是如何工作的。我查看了scipy文档后,其格式为:

scipy.signal.medfilt2d(输入,内核大小=3)

如果我有一个矩阵,比如

1 2 3 7 2 4
3 4 2 2 6 7
1 7 3 1 2 6
3 2 3 4 3 1
2 6 7 8 2 5
3 4 2 2 1 8
因为内核大小默认设置为3。如果我将medfilt2d应用于该矩阵,该矩阵是否会变成如下所示的矩阵?(我所做的是将3 x 3框中的每个元素相加,然后除以9(平均值))

那么,请与我分享你的知识和见解?如果我错了,告诉我,这样我就能从这个错误中吸取教训。非常感谢

如中所述,
medfilt2
是一个中值滤波器。引用文件

The sample median is the middle array value in a sorted list of neighborhood values
例如,位置
1,1

1 2 3
3 4 2
1 7 3
将被分类为

1 1 2 2 3 3 3 4 7

中间的元素是
3
,因此这将是过滤器的输出。还有更多细节

你是说第二个矩阵的前四分之一应该用“3”而不是“2.8”来填充吗?不,第二个矩阵中的每个元素都可以有不同的结果。对于元素
0,0
,输入子矩阵将是
[[0,0,0],[0,1,2],[0,3,4]
(在内部,子例程用0填充矩阵以填充缺少的元素)。然后排序的列表是
[0,0,0,0,0,1,2,3,4]
,中间元素是
0
。对于元素
0,1
,子矩阵是
[[0,0,0],[1,2,3],[3,4,2]
->
[0,0,0,1,2,2,3,3,4]
->
2
等等。哦,我完全明白你现在所说的。我有一个问题:我需要一种可以提高图像分辨率和降低图像分辨率的方法?如果应用medfilt2d是为了降低分辨率,是否有其他过滤器来提高分辨率?据我所知,中值滤波器用于去除噪声,而不是改变分辨率。您可能需要研究重采样过滤器。
1 1 2 2 3 3 3 4 7