cupyx.scipy.ndimage.generic_filter#

cupyx.scipy.ndimage.generic_filter(input, function, size=None, footprint=None, output=None, mode='reflect', cval=0.0, origin=0)[源码]#

使用提供的原始核函数或归约核函数计算多维滤波器。

与 scipy.ndimage 函数不同,此函数不支持 extra_argumentsextra_keywordsdict 参数,并且对提供的 function 有显著限制。

参数
  • input (cupy.ndarray) – 输入数组。

  • function (cupy.ReductionKernelcupy.RawKernel) – 要应用于每个区域的核函数或函数。

  • size (intint 的序列) – 必须提供 sizefootprint 中的一个。如果提供了 footprint,则忽略 size。否则 footprint = cupy.ones(size),并且 size 会自动匹配 input 的维数。

  • footprint (cupy.ndarray) – 一个布尔数组,指定此形状内哪些元素将传递给滤波函数。

  • output (cupy.ndarray, dtypeNone) – 放置输出的数组。默认值与输入的 dtype 相同。

  • mode (str) – 数组边界根据给定的模式处理 ('reflect', 'constant', 'nearest', 'mirror', 'wrap')。默认值为 'reflect'

  • cval (标量) – 如果模式为 'constant',用于填充输入边缘以外区域的值。默认值为 0.0

  • origin (标量标量元组) – origin 参数控制滤波器相对于当前输入元素中心的放置位置。默认值 0 等价于 (0,)*input.ndim

返回

滤波结果。

返回类型

cupy.ndarray

注意

如果 functioncupy.RawKernel,则它必须是具有以下签名的函数。与大多数函数不同,此函数不应利用 blockDim/blockIdx/threadIdx

__global__ void func(double *buffer, int filter_size,
                     double *return_value)

如果 functioncupy.ReductionKernel,则它必须是接受 1 个数组输入并产生 1 个“标量”输出的核函数。