python中scipy.signal.medfilt2d背后的概念
我正在试图了解scipy.signal.medfilt2d是如何工作的。我查看了scipy文档后,其格式为: scipy.signal.medfilt2d(输入,内核大小=3) 如果我有一个矩阵,比如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
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