用法:
skimage.morphology.local_maxima(image, footprint=None, connectivity=None, indices=False, allow_borders=True)
找到 n 维数组的局部最大值。
局部最大值被定义为具有相等灰度(高原)的连接像素集,严格大于邻域中所有像素的灰度。
- image:ndarray
一个 n 维数组。
- footprint:ndarray,可选
用于确定每个评估像素的邻域的足迹(结构元素)(
True
表示连接的像素)。它必须是一个布尔数组,并且具有与图片.如果两者都没有脚印也不连通性给定,所有相邻像素都被视为邻域的一部分。- connectivity:int 可选
用于确定每个评估像素的邻域的数字。与中心的平方距离小于或等于连通性的相邻像素被视为邻居。如果足迹不是无,则忽略。
- indices:布尔型,可选
如果为 True,则输出将是一维数组的元组,表示每个维度中局部最大值的索引。如果为 False,则输出将是一个与图像具有相同形状的布尔数组。
- allow_borders:布尔型,可选
如果为真,则接触图像边界的高原是有效的最大值。
- maxima:ndarray 或元组[ndarray]
如果 index 为假,一个与形状相同的布尔数组图片与
True
表示局部最大值的位置(False
除此以外)。如果 index 是真的,一维数组的元组包含所有找到的最大值的坐标(索引)。
- selem:DEPRECATED
已弃用以支持足迹。
- UserWarning
如果allow_borders 为假并且给定图像的任何维度都短于 3 个样本,则最大值不存在并显示警告。
参数:
返回:
其他参数:
警告:
注意:
此函数基于以下想法运行:
通过仅比较一个方向的像素,对图像的最后一个维度进行第一次遍历,并标记局部最大值的候选对象。如果像素在最后一维中没有连接,则所有像素都被标记为候选。
对于每个候选人:
执行 flood-fill 以查找具有相同灰度值且属于高原的所有连接像素。
考虑高原的连通邻域:如果没有边界样本具有更高的灰度级,则将高原标记为确定的局部最大值。
例子:
>>> from skimage.morphology import local_maxima >>> image = np.zeros((4, 7), dtype=int) >>> image[1:3, 1:3] = 1 >>> image[3, 0] = 1 >>> image[1:3, 4:6] = 2 >>> image[3, 6] = 3 >>> image array([[0, 0, 0, 0, 0, 0, 0], [0, 1, 1, 0, 2, 2, 0], [0, 1, 1, 0, 2, 2, 0], [1, 0, 0, 0, 0, 0, 3]])
通过比较所有相邻像素(最大连通性)找到局部最大值:
>>> local_maxima(image) array([[False, False, False, False, False, False, False], [False, True, True, False, False, False, False], [False, True, True, False, False, False, False], [ True, False, False, False, False, False, True]]) >>> local_maxima(image, indices=True) (array([1, 1, 2, 2, 3, 3]), array([1, 2, 1, 2, 0, 6]))
在不与对角像素比较的情况下找到局部最大值(连通性 1):
>>> local_maxima(image, connectivity=1) array([[False, False, False, False, False, False, False], [False, True, True, False, True, True, False], [False, True, True, False, True, True, False], [ True, False, False, False, False, False, True]])
并排除与图像边接壤的最大值:
>>> local_maxima(image, connectivity=1, allow_borders=False) array([[False, False, False, False, False, False, False], [False, True, True, False, True, True, False], [False, True, True, False, True, True, False], [False, False, False, False, False, False, False]])
相关用法
- Python skimage.morphology.local_minima用法及代码示例
- Python skimage.morphology.label用法及代码示例
- Python skimage.morphology.h_minima用法及代码示例
- Python skimage.morphology.dilation用法及代码示例
- Python skimage.morphology.remove_small_holes用法及代码示例
- Python skimage.morphology.flood_fill用法及代码示例
- Python skimage.morphology.black_tophat用法及代码示例
- Python skimage.morphology.h_maxima用法及代码示例
- Python skimage.morphology.area_closing用法及代码示例
- Python skimage.morphology.max_tree_local_maxima用法及代码示例
- Python skimage.morphology.thin用法及代码示例
- Python skimage.morphology.flood用法及代码示例
- Python skimage.morphology.diameter_closing用法及代码示例
- Python skimage.morphology.remove_small_objects用法及代码示例
- Python skimage.morphology.reconstruction用法及代码示例
- Python skimage.morphology.erosion用法及代码示例
- Python skimage.morphology.diameter_opening用法及代码示例
- Python skimage.morphology.max_tree用法及代码示例
- Python skimage.morphology.medial_axis用法及代码示例
- Python skimage.morphology.skeletonize用法及代码示例
注:本文由纯净天空筛选整理自scikit-image.org大神的英文原创作品 skimage.morphology.local_maxima。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。