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


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


用法:

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_abs和threshold_rel,则选择两者中的最大值作为峰值的最小强度阈值。

参数

imagendarray

输入图像。

min_distanceint 可选

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

threshold_abs浮点数或无,可选

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

threshold_rel浮点数或无,可选

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

exclude_borderint 整数元组或布尔值,可选

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

indices布尔型,可选

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

num_peaksint 可选

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

footprint布尔数组,可选

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

labels整数的ndarray,可选

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

num_peaks_per_labelint 可选

每个标签的最大峰值数。

p_norm浮点数

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

返回

outputndarray 或 ndarray 的布尔值
  • 如果 index =真:(行,列,...)峰坐标。
  • 如果 index =假: 布尔数组形状像图片, 峰值由 True 值表示。

注意

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

例子

>>> img1 = np.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 = np.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 = np.zeros_like(img2, dtype=bool)
>>> peak_mask[tuple(peak_idx.T)] = True
>>> np.argwhere(peak_mask)
array([[10, 10, 10],
       [15, 15, 15]])

相关用法


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