4连通域边界填充算法和8连通域边界填充算法
//边界填充算法
//边界填充算法-4连通域
void boundaryFill4(int x,int y,int fillColor,int borderColor)
{
int interiorColor;
getPixel(x,y,interiorColor);
if((interiorColor != borderColor)&&(interiorColor != fillColor))
{
setPixel(x,y);//set color of pixel to fillColor
boundaryFill4(x+1,y,fillColor,borderColor);
boundaryFill4(x-1,y,fillColor,borderColor);
boundaryFill4(x,y+1,fillColor,borderColor);
boundaryFill4(x,y-1,fillColor,borderColor);
}
}
//边界填充算法-8连通域
void boundaryFill8(int x,int y,int fillColor,int borderColor)
{
int interiorColor;
getPixel(x,y,interiorColor);
if((interiorColor != borderColor)&&(interiorColor != fillColor))
{
setPixel(x,y);//set color of pixel to fillColor
boundaryFill8(x+1,y,fillColor,borderColor);
boundaryFill8(x-1,y,fillColor,borderColor);
boundaryFill8(x,y+1,fillColor,borderColor);
boundaryFill8(x,y-1,fillColor,borderColor);
boundaryFill8(x-1,y-1,fillColor,borderColor);
boundaryFill8(x-1,y+1,fillColor,borderColor);
boundaryFill8(x+1,y-1,fillColor,borderColor);
boundaryFill8(x+1,y+1,fillColor,borderColor);
}
}
如果您觉得这篇博文有用,请访问我的个人站:http://www.stubbornhuang.com,更多博文干货等着您。