Как ndimage.generic_filter () работает с многомерными массивами - PullRequest
0 голосов
/ 25 апреля 2018

Мне кажется, я понимаю работу ndimage.generic_filter, но я не понимаю, что происходит, когда вы добавляете массив с более чем двумя измерениями (например, [[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 как это?

...