2017-11-04 100 views
0

给定30 x 30像素的红色和绿色像素,存储为0和1的数组,其中1为红色,0为绿色。查找图算法的封闭部分

图像从绿色和随机的红色图案开始绘制。

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

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

+0

您尚未指定您用于填充像素的任何方法。 – MBo

回答

1

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

有一个int biggestSize = 0和一个Point biggestStartPoint = null变量与给定的初始值。

扫描图像。

当您遇到绿色像素时,用蓝色进行填充。

如果该填充的计数大于biggestSize,则用旧的最大面积(从biggestStartPoint)填充为红色。将新计数和起始像素存储在biggestSizebiggestStartPoint中。

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

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