2014-10-30 216 views
0

對於填充填充或邊界填充顏色區域,我感到很困惑。特別是當多種顏色在玩時。邊界填充和填充填充之間的區別

假設我們有一個帶綠色邊框和方格內部(黑色和白色)的多邊形。哪一種算法會以綠色正確填充區域,爲什麼?

洪水的定義從書上填寫:

有時候,我們要填寫(或改色),它不是一個單一的顏色邊界內定義的區域。我們可以通過替換指定的內部顏色而不是搜索特定的邊界顏色來消除這些區域。這個填充過程被稱爲洪水填充算法。

+0

http://www.differencebetween.com/difference-between-boundary-fill-and-vs-flood-fill/ – Henrik 2014-10-30 12:11:30

+0

由於名稱混淆(Henrik指出的文章未完全解決),請給出這兩種算法的描述,以便我們可以給出明智的答案。 (國際海事組織,洪水和邊界填充是完美的同義詞,並存在一個非常不同的技術多邊形填充。) – 2014-10-30 13:33:19

+0

@ YvesDaoust我很樂意給予說明,但書上也很模糊。因此,我問 – Ortixx 2014-10-30 20:35:45

回答

0

其實你不應該看到填充問題中有多種顏色,而是兩種類型:「is-a-border」顏色或一組顏色和「is-not-a-border」(「inside 「)顏色或一組顏色。這是一種簡單的二分法,就好像圖像是二元的。

在你提到的情況下,邊框是綠色的,裏面是黑色或白色(你也可以考慮不是綠色的)。

+0

那麼我會使用哪種算法,爲什麼? – Ortixx 2014-10-30 20:34:41

+0

洪水填充或邊界填充,因爲它們是相同的。 – 2014-10-30 22:04:54

1

您應該使用邊界填充算法。 如果保持着色區域向內至向外,直到遇到選定的邊界顏色。 在你的情況下,邊界顏色將是綠色。因此,算法將從任何內點開始,逐個像素地向外進行,直到遇到綠色(邊界)。黑色或白色在這裏不重要。

1

填充填充從多邊形內的任意點開始,然後向所有方向擴散填充像素。邊界填充找到第一個邊界,然後追蹤邊界,捲入內部。邊界填充通常更加複雜,但是它是一種線性算法,不需要遞歸,而填充填充可能會使用不可預知的內存量來完成,因爲不知道會產生多少個子填充。