ndimage.generic_filter()如何使用多维数组

时间:2018-04-24 21:06:19

标签: python scipy ndimage

我想我理解ndimage.generic_filter的工作但是我不明白当你输入一个超过2维的数组时会发生什么(比如图像中的[[R],[G],[B]]值)

给出以下代码:

import numpy as np
from scipy.ndimage import generic_filter
a = np.arange(36).reshape(3,3,4)
def fnc(buffer):
  return np.min(buffer)
footprint = [
 [[1, 1], [1, 1]],
 [[1, 1], [1, 1]],
 [[1, 1], [1, 1]] 
]
generic_filter(a, fnc, footprint = footprint)

输出结果为:

   array([[
   [ 0,  0,  1,  2],
   [ 0,  0,  1,  2],
   [ 4,  4,  5,  6]
   ],[
   [ 0,  0,  1,  2],
   [ 0,  0,  1,  2],
   [ 4,  4,  5,  6]
   ],[
   [12, 12, 13, 14],
   [12, 12, 13, 14],
   [16, 16, 17, 18]
   ]])

在我看来,第一个数组是以最后输入的数组为代价重复的,我无法看到它的逻辑。这是故意的行为,还是我不应该像这样使用generic_filter?

0 个答案:

没有答案