Filtro Scipy com saída multidimensional (ou não escalar)

Existe um filtro semelhante andimageégeneric_filter que suporta saída de vetor? Eu não consegui fazerscipy.ndimage.filters.generic_filter retorne mais que um escalar. Remova o comentário da linha no código abaixo para obter o erro:TypeError: only length-1 arrays can be converted to Python scalars.

Estou procurando um filtro genérico que processe matrizes 2D ou 3D e retorne um vetor em cada ponto. Assim, a saída teria uma dimensão adicionada. Para o exemplo abaixo, eu esperaria algo assim:

m.shape    # (10,10)
res.shape  # (10,10,2)

Código de exemplo

import numpy as np
from scipy import ndimage

a = np.ones((10, 10)) * np.arange(10)

footprint = np.array([[1,1,1],
                    [1,0,1],
                    [1,1,1]])

def myfunc(x):
    r = sum(x)
    #r = np.array([1,1])  # uncomment this
    return r

res = ndimage.generic_filter(a, myfunc, footprint=footprint)

questionAnswers(2)

yourAnswerToTheQuestion