洪水填充算法也叫种子生长算法,算法步骤如下:
1,在图像中选择一个种子点,如下图所示:
Fig.1示意图
种子点为图像中的黑色方框,即黑色像素点。
2,以这个点为起点,将它压入栈中,假设我们要填充的颜色为A,则将该点颜色设置为A,然后判断它的四邻域像素,这里我们设置一个颜色阈值T,假设当前像素灰度值为P(x,y),四邻域像素为M(n),n=1,2,3,4,那么判断当前像素与四邻域像素的灰度差值D=|P-M|,如果D小于T, 那么我们将该像素M作为下一个种子点,压入栈中,否则继续判断。如图中黑色像素的四邻域内有一灰色点,与其差值小于T,则把它作为新的种子点压入栈中,继续判断。
3,当栈为空时,种子填充结束,否则重做步骤2。
[函数代码]
///
/// Flood fill.
///
/// The source image.
/// The start point to be filled.
/// The color to be filled.
/// One parameter to control fill effect, from 0 to 255.
///
public static