Как применить ndimage.generic_filter ()

я пытаюсь выучить образ, и я могуне понимаю, какgeneric_filter () функция работает. Документация упоминает, что пользовательская функция должна применяться к определенной пользователем области, но я могусделать это. Вот пример:

>>> import numpy as np
>>> from scipy import ndimage
>>> im = np.ones((20, 20)) * np.arange(20)
>>> footprint = np.array([[0,0,1],
...                       [0,0,0],
...                       [1,0,0]])
... 
>>> def test(x):
...     return x * 0.5
... 
>>> res = ndimage.generic_filter(im, test, footprint=footprint)
Traceback (most recent call last):
  File "", line 1, in 
  File "C:\Python27\lib\site-packages\scipy\ndimage\filters.py", line 1142, in generic_filter
    cval, origins, extra_arguments, extra_keywords)
TypeError: only length-1 arrays can be converted to Python scalars

Я ожидал чтоx значение переданоtest() функция, те Истинные следы соседних элементов для каждого образца массива, так что в этом примере массивы с shape (2,), но я получаю выше ошибки.

Что я делаю неправильно?

Как я могу сказать универсальному фильтру применить простой расчет значения к указанным соседним точкам?

Ответы на вопрос(1)

Ваш ответ на вопрос