使用遮色片(Layer Mask)來做精確的選取

作者:李旬政

email:sclee@eagle.ee.ntu.edu.tw

 

        本文主要解釋遮色片的意義、操作方法、遮色片的基本應用,若你對遮色片完全不懂,這篇文章應該可以引你入門。不過在進入主題之前,我先拐個彎說些別的。

 

文章的寫作慣例

執行[image] -> 表示你要點選圖片所在的顯示視窗,按滑鼠右鍵,而後會出現一個功能表選單,在選單內選擇你要執行的功能。

執行[GIMP] -> 表示你要點選GIMP程式主畫面選單,File選單、Xtrns選單、或Help選單,在選單內選擇你要執行的功能。

描述對話盒參數設定時,對話盒參數的名稱與對話盒參數的設定值都用粗體字顯示,方便讀者閱讀。

 

一、選取工具簡介:

        選取工具有很多,有矩形選取(Rectangular Selection)、橢圓選取(Elliptical Selection)、套索(Free-hand Selection)、魔術棒(Fuzzy Selection)、、、,套索可用來選取不規則形狀,魔術棒可用來選取顏色相近的相鄰像素(pixels)。

[image] -> Select -> By Color是以顏色來選取,與魔術棒不同的之處在於-使用By Color Selection顏色相近的所有像素(pixels)皆會被選取。

你還可透過執行[image] -> Select -> Feather(Sharpen、Shrink、Glow、Border)來改變選取區域邊緣的性質,可將選取區域邊緣羽化、邊緣銳利化、邊緣往內收縮、邊緣往外擴張、或讓選取區域只留下邊界。

        有句俗話(台語)說得好:「選來選去,選到一個賣龍眼的。」由時難免會選錯,執行[image] -> Edit -> Undo可以回到前一步,或執行[image] -> Select -> None可以釋放已選取的區域。

        雖然有這麼多選取工具,但對於要精確選取一不規則物體,有時還是覺得不夠用。

 

二、選取工具實例應用:

 

 

圖1、鱗蝶

圖2、透明背景的鱗蝶

 

        要選取圖1的鱗蝶可以使用[image] -> Select -> By Color設定適當的Fuzziness Threshold可輕易將白色的背景正確選取,執行[image] -> Edit -> Cut可將白色的背景除去,粉紅色的花、綠色的葉子可用魔術棒輕易地除去,除了鱗蝶之外,剩下沒除去的像素可將圖片放大顯示,選用適當大小的畫刷,用橡皮擦擦去。

        [image] -> Edit -> Undo的快速鍵為Ctrl+Z,做錯時記得要按Ctrl+Z鍵,便可回到前一動作的結果。選錯區域時,執行[image] -> Select -> None可以釋放已選取的區域。

在GIMP主選單下執行File -> Preferences,會出現一個喜好設定Preferences對話盒,對話盒內有一目錄樹,有一分支選項Environment,按一下Environment這分支,出現其相關設定,其中Levels of Undo預設為5,代表最多我們可以復原5次動作前的畫面。Levels of Undo的上限只跟你的硬碟空間有關,若你的硬碟夠大,你愛設定多大就可以多大。

 

圖3、挾蝶bfly.jpg

 

        要除去圖3挾蝶的背景,只使用魔術棒或執行[image] -> Select -> By Color,是無法達成的。但可以用最笨的方法,圖片放大顯示,選用適當大小的畫刷,用橡皮擦擦去,接近挾蝶的地方用小的畫刷,遠離挾蝶的地方用大的畫刷,擦到不該擦的地方時,按Ctrl+Z鍵,回到前一動作的結果。

 

三、在遮色片上塗鴉

1.          執行[image]-> File -> Open開啟bfly.jpg,由於JPEG格式不能處理透明層,亦無法儲存遮色片(Layer Mask)的資訊,故將檔案另存為bfly.xcf,XCF格式是GIMP的原生檔案格式。

2.          點選bfly.xcf圖片視窗,執行[image] -> Layers -> Add Alpha Channel,執行[image] -> Layers -> Layers & Channels 啟動操作圖層的對話盒。在以下運算中,我們只有操作一個圖層,不會再產生其它圖層,這圖層的預設名稱為Background。

3.          點選Background圖層,按下滑鼠右鍵出現一與圖層相關的選單,執行Add Layer Mask,出現Layer Mask Options對話盒,按下OK按鈕,在Background圖層產生一全白的遮色片。此時全白的遮色片必須是被選取的(遮色片外圍必須還有一圈白色的方框)。

 

圖4、遮色片外圍有一圈白色方框,此時才可在遮色片上塗鴉

圖5、白色方框在影像外圍,所有運算直接作用在影像上

 

4.          若白色的方框在影像外圍表示點選bfly.xcf圖片視窗,執行的所有運算將作用在bfly.xcf圖片的影像上。若白色的方框在遮色片遮色片表示點選bfly.xcf圖片視窗,執行的所有運算將作用在遮色片上,遮色片的黑色,會使得該區域的影像變透明,遮色片的白色讓區域的影像維持不變。遮色片的灰階的色值使得該區域的影像呈現半透明。

圖6、遮色片右上角變黑色,右上角影像變透明

 

5.          使用鉛筆工具在背景顏色為黑色、畫刷(brush)為預設值Circle(19)19x19,在bfly.xcf視窗影像上右上角做塗寫的動作,雖然畫刷是黑色的,但塗寫到的部份卻變成透明的。

6.          圖2可清楚看出左圖遮色片右上角的黑色,造成右圖右上角影像變透明。

 

圖7、天啊!挾蝶的頭不見了

 

7.          若在步驟5中不甚用力過猛,挾蝶的頭不見了,該怎麼辦?當然你可以按Ctrl+Z鍵,回到前一動作的結果。以下介紹另一種方法。

8.          點一下前景背景色設定鈕中的置換符號(紅色圈住的部分),將前景色設為白色,使用鉛筆工具在前景顏色為白色、畫刷為預設值Circle(19)19x19,在bfly.xcf視窗影像上,塗寫挾蝶的頭,雖然畫刷是白色的,但塗寫到的部份還原為原本的影像。

9.          故我們可以這樣說,在遮色片上塗上黑色會在影像上產生透明的效果,在遮色片上塗上白色會讓影像顯示出影像原來的樣子。

 

四、使用遮色片做精確選取

1.          承接「三、使用遮色片做精確選取」的第8步驟,使用白色畫刷將挾蝶影像還原為圖3原本的樣子。

2.          使用鉛筆工具在背景顏色為黑色、畫刷選擇Circle(05)5x5,在bfly.xcf視窗影像上挾蝶身體頭部觸鬚周圍畫上一圈「透明」的線,這條線中間不能有斷掉。若畫到不該畫的地方,使用「三、在遮色片塗鴉」的第8步驟的方法復原。

 

 

圖8、挾蝶原圖

圖9、一圈無間斷的「透明」線

 

3.          點選操作圖層的對話盒,將遮色片外圍白色的方框移到影像外圍。這樣接下來所做的選取動作才會作用在影像上,而不是遮色片上。

4.          魔術棒(Fuzzy Selection)可用來選取顏色相近的相鄰像素(pixels),使用魔術棒來選取已經被「透明」線隔絕的背景,按兩下按鈕出現Tool Option對話盒,設定Threshold為255,點一下圖片中背景的任何地方,可將背景完全選取。若Threshold不為255,當我們將選取區域剪下時會留下一些半透明的顆粒。

5.          執行[image] -> Edit -> Cut。

 

圖9、使用魔術棒來選取

圖10、剪下選取區域

 

6.          點選操作圖層的對話盒,將影像外圍白色的方框移到遮色片外圍。

7.          點選bfly.xcf圖片視窗,使用鍵盤快速鍵”+”,將影像的預覽畫面放大。

8.          使用鉛筆工具在背景顏色為黑色、畫刷選擇Circle(01)1x1或Circle(03)3x3,將挾蝶身體頭部觸鬚周圍沒清乾淨的背景塗成透明的。若畫到不該畫的地方,使用「三、在遮色片塗鴉」的第8步驟的方法復原。

 

圖11、按鍵盤快速鍵”+”,放大預覽畫面為影像實際大小的5倍

圖12、使用小的畫刷清除細部的邊緣的背景,只留下蝴蝶

 

9.          點選操作圖層的對話盒,按下滑鼠右鍵出現一與圖層相關的選單,執行Apply Layer Mask,出現Layer Mask Options對話盒,按下Apply按鈕,將遮色片的效果作用於圖層上。

10.      接下來呢?你可以利用這隻沒有背景的挾蝶,做一些影像合成的圖片。