查找图算法的封闭部分

时间:2017-11-04 01:46:30

标签: algorithm graph-algorithm

给出一个30 x 30的红色和绿色像素图像,存储为0和1的数组,其中1为红色,0为绿色。

图像以绿色开始,随机的红色图案在顶部绘制。

图像的所有最外面的像素也涂成红色。

问题是如何填充每个绿色口袋没有连接到最大的绿色口袋和红色?

1 个答案:

答案 0 :(得分:1)

获取/写入泛光填充算法,从某个像素开始,用不同的值填充所有连接的像素,并在此过程中计算像素。

拥有具有给定初始值的int biggestSize = 0Point biggestStartPoint = null变量。

扫描图像。

当你得到一个绿色像素时,用蓝色填充。

如果洪水填充的数量大于biggestSize,则用红色填充旧的最大区域(来自biggestStartPoint)。将新计数和起始像素存储在biggestSizebiggestStartPoint

如果计数不大,则用红色填充(现在为蓝色)区域,并保持变量不变。

最后,用绿色填充最大的区域。