当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python cucim.skimage.feature.peak_local_max用法及代码示例


用法:

cucim.skimage.feature.peak_local_max(image, min_distance=1, threshold_abs=None, threshold_rel=None, exclude_border=True, indices=True, num_peaks=inf, footprint=None, labels=None, num_peaks_per_label=inf, p_norm=inf)

在图像中查找峰值作为坐标列表或布尔掩码。

峰值是 2 * min_distance + 1 区域中的局部最大值(即,峰值至少相隔 min_distance )。

如果同时提供threshold_absthreshold_rel,则选择两者中的最大值作为峰值的最小强度阈值。

在 0.18 版中更改:在 0.18 版之前,半径范围内相同高度的峰min_distance全部返回,但这可能会导致意外行为。从 0.18 开始,返回该区域内的任意峰值。请参阅问题 gh-2592。

参数

imagendarray

输入图像。

min_distance整数,可选

分离峰的最小允许距离。要查找最大峰值数,请使用 min_distance=1

threshold_abs浮点数,可选

峰的最小强度。默认情况下,绝对阈值是图像的最小强度。

threshold_rel浮点数,可选

峰的最小强度,计算为 max(image) * threshold_rel

exclude_borderint,int 元组,或 bool,可选

如果是正整数,exclude_border 会排除图像边界的 exclude_border -pixels 内的峰值。如果元组是非负整数,则元组的长度必须与输入数组的维度匹配。元组的每个元素将排除 exclude_border -沿该维度的图像边界的像素内的峰值。如果为 True,则将 min_distance 参数作为值。如果为零或假,无论峰与边界的距离如何,都可以识别峰。

indices布尔型,可选

如果为 True,则输出将是一个表示峰值坐标的数组。坐标根据峰值排序(较大的优先)。如果为 False,则输出将是一个布尔数组,其形状为 image.shape,峰值出现在 True 元素处。 indices 已弃用,将在 0.20 版中删除。默认行为将始终返回峰值坐标。您可以获得如下示例所示的掩码。

num_peaks整数,可选

最大峰值数。当峰数超过 num_peaks 时,根据最高峰强度返回 num_peaks 峰。

footprint布尔数组,可选

如果提供,footprint == 1 表示要在其中搜索 image 中每个点的峰值的局部区域。

labels整数的ndarray,可选

如果提供,每个唯一区域 labels == value 代表一个用于搜索峰的唯一区域。零是为背景保留的。

num_peaks_per_label整数,可选

每个标签的最大峰值数。

p_norm浮点数

使用哪个 Minkowski p-norm。应在 [1, inf] 范围内。如果可能发生溢出,有限的大 p 可能会导致 ValueError。 inf 对应于切比雪夫距离,2 对应于欧几里得距离。

返回

outputndarray 或 ndarray 的布尔值
  • 如果indices = True:(行,列,...)峰坐标。
  • 如果 indices = False :布尔数组,形状类似于 image ,峰值由 True 值表示。

注意

峰值局部最大值函数返回图像中局部峰值(最大值)的坐标。在内部,最大过滤器用于寻找局部最大值。此操作会扩大原始图像。在比较扩张图像和原始图像之后,此函数返回扩张图像等于原始图像的峰的坐标或掩码。

例子

>>> import cupy as cp
>>> img1 = cp.zeros((7, 7))
>>> img1[3, 4] = 1
>>> img1[3, 2] = 1.5
>>> img1
array([[0. , 0. , 0. , 0. , 0. , 0. , 0. ],
       [0. , 0. , 0. , 0. , 0. , 0. , 0. ],
       [0. , 0. , 0. , 0. , 0. , 0. , 0. ],
       [0. , 0. , 1.5, 0. , 1. , 0. , 0. ],
       [0. , 0. , 0. , 0. , 0. , 0. , 0. ],
       [0. , 0. , 0. , 0. , 0. , 0. , 0. ],
       [0. , 0. , 0. , 0. , 0. , 0. , 0. ]])
>>> peak_local_max(img1, min_distance=1)
array([[3, 2],
       [3, 4]])
>>> peak_local_max(img1, min_distance=2)
array([[3, 2]])
>>> img2 = cp.zeros((20, 20, 20))
>>> img2[10, 10, 10] = 1
>>> img2[15, 15, 15] = 1
>>> peak_idx = peak_local_max(img2, exclude_border=0)
>>> peak_idx
array([[10, 10, 10],
       [15, 15, 15]])
>>> peak_mask = cp.zeros_like(img2, dtype=bool)
>>> peak_mask[tuple(peak_idx.T)] = True
>>> np.argwhere(peak_mask)
array([[10, 10, 10],
       [15, 15, 15]])

相关用法


注:本文由纯净天空筛选整理自rapids.ai大神的英文原创作品 cucim.skimage.feature.peak_local_max。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。