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


Python skimage.morphology.h_maxima用法及代码示例


用法:

skimage.morphology.h_maxima(image, h, footprint=None)

确定高度> = h的图像的所有最大值。

局部最大值被定义为具有相等灰度级的连接像素集,该像素集严格大于该集直接邻域中所有像素的灰度级。

高度为 h 的局部最大值 M 是这样一个局部最大值,其中至少有一条路径将 M 与相等或更高的局部最大值相连接,其最小值为 f(M) - h(即沿路径的值不递减)相对于最大值超过 h) 并且没有到达最小值更大的相等或更高局部最大值的路径。

该函数还可以找到图像的全局最大值。

参数

imagendarray

要计算最大值的输入图像。

h无符号整数

所有提取的最大值的最小高度。

footprintndarray,可选

邻域表示为 1 和 0 的 n-D 数组。默认是根据最大范数半径为 1 的球(即 2D 图像的 3x3 正方形,3D 图像的 3x3x3 立方体等)

返回

h_maxndarray

高度 >= h 的局部最大值和全局最大值。生成的图像是二值图像,其中属于已确定最大值的像素取值为 1,其他像素取值为 0。

其他参数

selemDEPRECATED

已弃用以支持足迹。

参考

1

Soille, P., “Morphological Image Analysis: Principles and Applications” (Chapter 6), 2nd edition (2003), ISBN 3540429883.

例子

>>> import numpy as np
>>> from skimage.morphology import extrema

我们创建一个图像(二次函数,中心有一个最大值,另外还有 4 个常数最大值。最大值的高度是:1、21、41、61、81

>>> w = 10
>>> x, y = np.mgrid[0:w,0:w]
>>> f = 20 - 0.2*((x - w/2)**2 + (y-w/2)**2)
>>> f[2:4,2:4] = 40; f[2:4,7:9] = 60; f[7:9,2:4] = 80; f[7:9,7:9] = 100
>>> f = f.astype(int)

我们可以计算所有高度至少为 40 的最大值:

>>> maxima = extrema.h_maxima(f, 40)

生成的图像将包含 3 个局部最大值。

相关用法


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