📜  洪水填充和边界填充算法之间的区别

📅  最后修改于: 2021-04-28 14:24:35             🧑  作者: Mango

洪水填充算法:
洪水填充算法也称为种子填充算法。它确定连接到多维数组中给定节点的区域。该算法通过填充或重新着色内部区域(因此图像边界)中包含不同颜色的选定区域来工作。它通常由具有以各种不同颜色区域为边界的邻域的图片来说明。为了绘制此类区域,我们将替换特定的内部颜色,而不是发现边界颜色值。这是因为采用了洪水填充算法,因此可以理解该方法的原理。
现在,有两种方法可用于通过连接像素创建无限边界– 4连通法和8连通法。在4连接方法中,该像素最多可以具有四个相邻像素,它们位于当前像素的适当位置,左侧,上方和下方。相反,在8连接方法中,它可以有八个,并且相对于四个对角像素检查相邻位置。因此,这两种方法中的任何一种通常都不会重画内部点。

边界填充算法
它遵循一种方法,其中区域填充从某种程度上开始驻留在区域内部,然后将内部填充到边界。在边界包含单一颜色的情况下,填充算法在向外的像素中逐个像素地继续,直到遇到边界颜色为止。边界填充算法通常主要在交互式绘画包中实现,在其中容易选择内部点。
边界填充的功能从接受室内点(x,y)的坐标开始,边界颜色和填充颜色成为输入。从(x,y)开始,该方法检查相邻位置以发现它们是否是边界色的一部分。如果它们不是来自边界色,则将它们填充为填充色,并根据条件测试其相邻像素。当检查所有像素直到世界的边界颜色时,该过程结束。

填充算法和边界填充算法之间的区别:

Flood-fill Algorithm Boundary-fill Algorithm
It can process the image containing more than one boundary colours. It can only process the image containing single boundary colour.
Flood-fill algorithm is comparatively slower than the Boundary-fill algorithm. Boundary-fill algorithm is faster than the Flood-fill algorithm.
In Flood-fill algorithm a random colour can be used to paint the interior portion then the old one is replaced with a new one. In Boundary-fill algorithm Interior points are painted by continuously searching for the boundary colour.
It requires huge amount of memory. Memory consumption is relatively low in Boundary-fill algorithm.
Flood-fill algorithms are simple and efficient. The complexity of Bounndary-fill algorithm is high.