三、區域填充算法——>【要求:區域是連通的】
區域:指已經表示成點陣形式的填充圖形,是象素的集合。
1、區域有兩種表示形式:
1)內點表示:枚舉出區域內部的所有象素,內部所有象素着同一個顏色,邊界像素着與內部象素不同的顏色。
2)邊界表示:枚舉出區域外部的所有象素,邊界上的所有象素着同一個顏色,內部像素着與邊界象素不同的顏色。
2、區域分為:
1)四向連通區域:從區域上一點出發可通過【上、下、左、右】四個方向移動的組合,在不越出區域的前提下,到達區域內的任意象素。
2)八向連通區域:從區域上一點出發可通過【上、下、左、右、左上、右上、左下、右下】八個方向移動的組合,在不越出區域的前提下,到達區域內的任意象素。
區域填充:將區域內的一點(常稱【種子點】)賦予給定顏色,然后將這種顏色擴展到整個區域內的過程。
簡單四連通種子填充算法(區域填充遞歸算法)——>用【棧結構】來實現
原理——>種子象素入棧,當【棧非空】時重復如下三步:
【不足】
a)某些象素會多次入棧,降低算法效率,棧結構占空間;
b)遞歸執行算法簡單,但效率不高,區域內每個象素都要進/出棧
c)費時費內存;