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_arguments
或extra_keywordsdict
参数,并且对提供的function
有显著限制。- 参数:
input (cupy.ndarray) – 输入数组。
function (cupy.ReductionKernel 或 cupy.RawKernel) – 要应用于每个区域的核函数或函数。
size (int 或 int 的序列) – 必须提供
size
或footprint
中的一个。如果提供了footprint
,则忽略size
。否则footprint = cupy.ones(size)
,并且size
会自动匹配input
的维数。footprint (cupy.ndarray) – 一个布尔数组,指定此形状内哪些元素将传递给滤波函数。
output (cupy.ndarray, dtype 或 None) – 放置输出的数组。默认值与输入的 dtype 相同。
mode (str) – 数组边界根据给定的模式处理 (
'reflect'
,'constant'
,'nearest'
,'mirror'
,'wrap'
)。默认值为'reflect'
。cval (标量) – 如果模式为
'constant'
,用于填充输入边缘以外区域的值。默认值为0.0
。origin (标量 或 标量元组) – origin 参数控制滤波器相对于当前输入元素中心的放置位置。默认值 0 等价于
(0,)*input.ndim
。
- 返回:
滤波结果。
- 返回类型:
注意
如果 function 是
cupy.RawKernel
,则它必须是具有以下签名的函数。与大多数函数不同,此函数不应利用 blockDim/blockIdx/threadIdx__global__ void func(double *buffer, int filter_size, double *return_value)
如果 function 是
cupy.ReductionKernel
,则它必须是接受 1 个数组输入并产生 1 个“标量”输出的核函数。