洪水填充算法:
洪水填充算法也称为种子填充算法。它确定连接到多维数组中给定节点的区域。该算法通过填充或重新着色内部区域(因此图像边界)中包含不同颜色的选定区域来工作。它通常由具有以各种不同颜色区域为边界的邻域的图片来说明。为了绘制此类区域,我们将替换特定的内部颜色,而不是发现边界颜色值。这是因为采用了洪水填充算法,因此可以理解该方法的原理。
现在,有两种方法可用于通过连接像素创建无限边界– 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. |