Мне кажется, я понимаю работу 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 как это?