我试图了解scipy.signal.medfilt2d的工作原理。在查看scipy文档后,其格式为:
scipy.signal.medfilt2d(input,kernel_size = 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(平均值))
2.8 2.8 2.8 4.1 4.1 4.1
2.8 2.8 2.8 4.1 4.1 4.1
2.8 2.8 2.8 4.1 4.1 4.1
3.5 3.5 3.5 3.7 3.7 3.7
3.5 3.5 3.5 3.7 3.7 3.7
3.5 3.5 3.5 3.7 3.7 3.7
那么请与我分享您的知识和见解?告诉我,如果我错了,我可以从这个错误中吸取教训。非常感谢
答案 0 :(得分:1)
正如Scipy documentation中所述,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
,因此它将是过滤器的输出。还有更多细节on Wikipedia。