scipy.ndimage.distance_transform_bf

scipy.ndimage.distance_transform_bf(input, metric='euclidean', sampling=None, return_distances=True, return_indices=False, distances=None, indices=None)[源代码]

距离转换函数由一种强力算法实现。

此函数用于计算 input 通过将每个前景(非零)元素替换为其到背景的最短距离(任何零值元素)。

除了距离变换之外,还可以计算特征变换。在这种情况下,在单独的数组中返回与每个前景元素最接近的背景元素的索引。

参数
inputarray_like

输入

metric{‘欧几里得’,‘出租车’,‘棋盘’},可选

“城市街区”和“曼哈顿”也是有效的,并映射到“出租车”。默认值为“欧几里得”。

sampling浮点,或浮点序列,可选

此参数仅在以下情况下使用 metric 是“欧几里得”。元素沿每个维度的间距。如果是序列,长度必须等于输入秩;如果是单个数字,则用于所有轴。如果未指定,则暗示栅格间距为单位。

return_distances布尔值,可选

是否计算距离变换。默认值为True。

return_indices布尔值,可选

是否计算要素变换。默认值为False。

distancesndarray,可选

一个输出数组,用于存储计算的距离转换,而不是返回它。 return_distances 一定是真的。它的形状必须与 input ,并且如果类型为Float64,则为 metric 为‘欧几里得’,否则为uint32。

indicesint32 ndarray,可选

一个输出数组,用于存储计算的要素转换,而不是返回它。 return_indicies 一定是真的。它的形状必须是 (input.ndim,) + input.shape

退货
distancesndarray,可选

计算的距离变换。仅在以下情况下返回 return_distances 是真的,并且 distances 不提供。它将具有与输入数组相同的形状。

indicesint32 ndarray,可选

计算的要素变换。它对输入的每个维度都有一个输入型数组。有关示例,请参阅Distance_Transform_EDT文档。仅在以下情况下返回 return_indices 是真的,并且 indices 不提供。

注意事项

该函数使用缓慢的暴力算法,另请参见函数Distance_Transform_cdt以获取更高效的出租车和棋盘算法。