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


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


用法:

skimage.morphology.flood(image, seed_point, *, footprint=None, connectivity=None, tolerance=None)

对应于洪水填充的掩码。

从特定的seed_point 开始,找到等于或在种子值容差范围内的连接点。

参数

imagendarray

一个 n 维数组。

seed_point元组或int

图像中用作泛滥填充起点的点。如果图像是一维的,这个点可以作为一个整数给出。

footprintndarray,可选

用于确定每个评估像素的邻域的足迹(结构元素)。它必须只包含 1 和 0,具有与图像相同的维数。如果未给出,则所有相邻像素都被视为邻域的一部分(完全连接)。

connectivityint 可选

用于确定每个评估像素的邻域的数字。距中心的平方距离大于或等于连通性的相邻像素被视为邻居。如果足迹不是无,则忽略。

tolerance浮点数或 int 可选

如果为 None(默认),则相邻值必须严格等于图像在 seed_point 处的初始值。这是最快的。如果给出了一个值,将在每个点进行比较,如果在初始值的公差范围内,也将填充(包括)。

返回

maskndarray

返回一个与图像形状相同的布尔数组,其中连接到种子点并等于(或在其容差范围内)的区域的 True 值。所有其他值为 False。

其他参数

selemDEPRECATED

已弃用以支持足迹。

注意

此操作的概念类比是许多光栅图形程序中的“油漆桶”工具。这个函数只返回代表填充的掩码。

如果出于内存原因需要索引而不是掩码,用户可以简单地对结果运行 numpy.nonzero ,保存索引,然后丢弃此掩码。

例子

>>> from skimage.morphology import flood
>>> 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]])

用 5 填充连接的,完全连接(包括对角线):

>>> mask = flood(image, (1, 1))
>>> image_flooded = image.copy()
>>> image_flooded[mask] = 5
>>> image_flooded
array([[0, 0, 0, 0, 0, 0, 0],
       [0, 5, 5, 0, 2, 2, 0],
       [0, 5, 5, 0, 2, 2, 0],
       [5, 0, 0, 0, 0, 0, 3]])

用 5 填充连接的点,不包括对角点(连接 1):

>>> mask = flood(image, (1, 1), connectivity=1)
>>> image_flooded = image.copy()
>>> image_flooded[mask] = 5
>>> image_flooded
array([[0, 0, 0, 0, 0, 0, 0],
       [0, 5, 5, 0, 2, 2, 0],
       [0, 5, 5, 0, 2, 2, 0],
       [1, 0, 0, 0, 0, 0, 3]])

填充公差:

>>> mask = flood(image, (0, 0), tolerance=1)
>>> image_flooded = image.copy()
>>> image_flooded[mask] = 5
>>> image_flooded
array([[5, 5, 5, 5, 5, 5, 5],
       [5, 5, 5, 5, 2, 2, 5],
       [5, 5, 5, 5, 2, 2, 5],
       [5, 5, 5, 5, 5, 5, 3]])

相关用法


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