用法:
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_abs
和threshold_rel
,则选择两者中的最大值作为峰值的最小强度阈值。在 0.18 版中更改:在 0.18 版之前,半径范围内相同高度的峰
min_distance
全部返回,但这可能会导致意外行为。从 0.18 开始,返回该区域内的任意峰值。请参阅问题 gh-2592。- image:ndarray
输入图像。
- min_distance:整数,可选
分离峰的最小允许距离。要查找最大峰值数,请使用
min_distance=1
。- threshold_abs:浮点数,可选
峰的最小强度。默认情况下,绝对阈值是图像的最小强度。
- threshold_rel:浮点数,可选
峰的最小强度,计算为
max(image) * threshold_rel
。- exclude_border:int,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 对应于欧几里得距离。
- output:ndarray 或 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]])
相关用法
- Python cucim.skimage.feature.shape_index用法及代码示例
- Python cucim.skimage.feature.corner_foerstner用法及代码示例
- Python cucim.skimage.feature.structure_tensor_eigenvalues用法及代码示例
- Python cucim.skimage.feature.corner_shi_tomasi用法及代码示例
- Python cucim.skimage.feature.match_template用法及代码示例
- Python cucim.skimage.feature.structure_tensor_eigvals用法及代码示例
- Python cucim.skimage.feature.hessian_matrix_eigvals用法及代码示例
- Python cucim.skimage.feature.canny用法及代码示例
- Python cucim.skimage.feature.hessian_matrix用法及代码示例
- Python cucim.skimage.feature.corner_peaks用法及代码示例
- Python cucim.skimage.feature.corner_kitchen_rosenfeld用法及代码示例
- Python cucim.skimage.feature.corner_harris用法及代码示例
- Python cucim.skimage.feature.structure_tensor用法及代码示例
- Python cucim.skimage.filters.roberts_neg_diag用法及代码示例
- Python cucim.skimage.filters.gabor用法及代码示例
- Python cucim.skimage.filters.roberts_pos_diag用法及代码示例
- Python cucim.skimage.filters.roberts用法及代码示例
- Python cucim.skimage.filters.gabor_kernel用法及代码示例
- Python cucim.skimage.filters.sobel_v用法及代码示例
- Python cucim.skimage.filters.sobel_h用法及代码示例
注:本文由纯净天空筛选整理自rapids.ai大神的英文原创作品 cucim.skimage.feature.peak_local_max。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。