2017-11-04 134 views
0

給定30 x 30像素的紅色和綠色像素,存儲爲0和1的數組,其中1爲紅色,0爲綠色。查找圖算法的封閉部分

圖像從綠色和隨機的紅色圖案開始繪製。

圖像的所有最外面的像素也被塗成紅色。

現在的問題是如何填充綠色的每一個口袋,沒有連接到紅色的最大口袋綠色?

+0

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

回答

1

獲取/寫入填充算法,該算法從某個像素開始,使用不同的值填充所有連接的像素,並在此過程中對像素進行計數。

有一個int biggestSize = 0和一個Point biggestStartPoint = null變量與給定的初始值。

掃描圖像。

當您遇到綠色像素時,用藍色進行填充。

如果該填充的計數大於biggestSize,則用舊的最大面積(從biggestStartPoint)填充爲紅色。將新計數和起始像素存儲在biggestSizebiggestStartPoint中。

如果計數不大,用紅色填充(現在是藍色)區域,並保持變量不變。

最後,用綠色填充最大區域。