Numpy最大池卷积

2024-04-29 06:56:48 发布

您现在位置:Python中文网/ 问答频道 /正文

编辑:

我真正想做的是找到局部极大值,下面很好地解释了这个问题,这里也解释了同样的解决方案:

http://scikit-image.org/docs/dev/auto_examples/plot_peak_local_max.html




似乎你可以在Numpy中做linear卷积。

是否可以进行非线性最大池卷积?使用NxM补丁并跨过输入图像,如果当前像素不是附近的最大值,则将其归零?

所以非线性最大卷积是这样工作的,这是我的图像

  3 4 5 2 3
  3 5 1 2 7
  2 2 5 1 7

给定一个最大2x2的池可以得到这个输出

  0 0 5 0 0
  0 5 0 0 7
  0 0 5 0 7

你有一个2x2补丁,可以跨越图像,并将所有内容归零,只保留最大值。


Tags: orgdev图像imagehttp编辑docsauto
1条回答
网友
1楼 · 发布于 2024-04-29 06:56:48

你可以用Scipy's maximum_filer-

from scipy.ndimage.filters import maximum_filter

arr*(arr == maximum_filter(arr,footprint=np.ones((3,3))))

样本运行-

In [19]: arr
Out[19]: 
array([[3, 4, 5, 2, 3],
       [3, 5, 1, 2, 7],
       [2, 2, 5, 6, 7]])

In [20]: arr*(arr == maximum_filter(arr,footprint=np.ones((3,3))))
Out[20]: 
array([[0, 0, 5, 0, 0],
       [0, 5, 0, 0, 7],
       [0, 0, 0, 0, 7]])

相关问题 更多 >