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


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


用法:

skimage.morphology.flood_fill(image, seed_point, new_value, *, footprint=None, connectivity=None, tolerance=None, in_place=False)

对图像执行洪水填充。

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

参数

imagendarray

一个 n 维数组。

seed_point元组或int

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

new_value图片类型

设置整个填充的新值。这必须与图像的 dtype 一致。

footprintndarray,可选

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

connectivityint 可选

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

tolerance浮点数或 int 可选

如果 None (默认),相邻值必须严格等于要填充的 seed_point 处的图像值。这是最快的。如果提供了容差,则会填充与种子点相差在正或负容差范围内的相邻点(包括)。

in_place布尔型,可选

如果为 True,则将洪水填充应用于图像。如果为 False,则在不修改输入图像的情况下返回洪水填充结果(默认)。

返回

filledndarray

返回一个与图像形状相同的数组,其中与种子点相连并等于(或在其容差范围内)的区域中的值替换为 new_value。

其他参数

selemDEPRECATED

已弃用以支持足迹。

注意

此操作的概念类比是许多光栅图形程序中的“油漆桶”工具。

例子

>>> from skimage.morphology import flood_fill
>>> 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 填充连接的,完全连接(包括对角线):

>>> flood_fill(image, (1, 1), 5)
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):

>>> flood_fill(image, (1, 1), 5, connectivity=1)
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]])

填充公差:

>>> flood_fill(image, (0, 0), 5, tolerance=1)
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_fill。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。