Как ndimage.generic_filter() работает с многомерными массивами
Я думаю, что понимаю работу 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 как это?