【问题标题】:Numpy max pooling convolutionNumpy 最大池化卷积
【发布时间】:2016-07-05 16:23:03
【问题描述】:

编辑:

我真正想做的是找到局部最大值,下面解释得很好,这里也解释了相同的解决方案:

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 补丁,并将所有内容归零,只保留最大值。

【问题讨论】:

  • Windowed maximum in numpy的可能重复
  • 添加示例,@Lanting 你指的问题不是卷积
  • 不应该输出(2,2) 为零,因为在那个滑动补丁中有一个更大的6
  • 另外,如何在(2,2) 补丁中定义中心像素?你不是说(3,3) 补丁吗?
  • 好吧,也许 3x3 效果更好,但我似乎最大过滤器仍然可以处理 2x2 补丁

标签: python numpy


【解决方案1】:

你可以使用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]])

【讨论】:

  • 完美!带面具的聪明东西,否则图像将由高原组成。您的解决方案提取了局部最大值,正是我需要的:)
猜你喜欢
  • 2022-01-05
  • 2018-07-26
  • 1970-01-01
  • 2018-04-24
  • 2018-04-30
  • 2019-10-11
  • 2019-12-15
  • 2017-11-23
  • 1970-01-01
相关资源
最近更新 更多