一、漫水填充定义
漫水填充(Flood Fill)法是用特定的颜色填充联通区域,通过设置可联通像素的上下限以及联通方式来达到不同的填充效果的方法。主要用来标记和分离图像的一部分以便对其进一步处理和分析。也可以用来从输入图像获取掩码区域,掩码会加快处理过程,或只处理掩码指定的像素点。
所谓漫水填充,简单来说,就是自动选中了和种子点相连的区域,接着将该区域替换成指定的颜色,这是个非常有用的功能,经常用来标记或者分离图像的一部分进行处理或分析.漫水填充也可以用来从输入图像获取掩码区域,掩码会加速处理过程,或者只处理掩码指定的像素点.
在OpenCV中,漫水填充是填充算法中最通用的方法。且在OpenCV 2.X中,使用C++重写过的FloodFill函数有两个版本。一个不带掩膜mask的版本,和一个带mask的版本。这个掩膜mask,就是用于进一步控制哪些区域将被填充颜色(比如说当对同一图像进行多次填充时)。这两个版本的FloodFill,都必须在图像中选择一个种子点,然后把临近区域所有相似点填充上同样的颜色,不同的是,不一定将所有的邻近像素点都染上同一颜色,漫水填充操作的结果总是某个连续的区域。当邻近像素点位于给定的范围(从loDiff到upDiff)内或在原始seedPoint像素值范围内时,FloodFill函数就会为这个点涂上颜色。
来自 https://blog.youkuaiyun.com/poem_qianmo/article/details/28261997
二、floodFill函数详解
Opencv中有两个版本的floodFill函数,如下所示:
Python:
retval, image, mask, rect = cv.floodFill( image, mask, seedPoint, newVal[, loDiff[, upDiff[, flags]]] )
retval, image, mask, rect = cv.floodFill( ima