王建軍,唐前軍





摘? 要: 文章對Alpha通道的圖像存儲結構進行了底層剖析,從根本上闡述了Alpha通道對圖像的作用機理,以求解決在圖像處理以及圖像識別過程遇到的理解困難。重點分析了在圖像高級處理中的應用效果,給出了典型的圖像處理范例進行操作剖析,從實驗結果上對Alpha通道的特殊作用進行了印證。
關鍵詞: 圖層; 通道; 蒙版; 路徑
中圖分類號:TP37? ? ? ? ? 文獻標識碼:A? ? 文章編號:1006-8228(2022)01-46-04
Research on the application of Alpha channel in image processing
Wang Jianjun1, Tang Qianjun2
(1. School of Design, Leshan Normal University, Leshan, Sichuan 61400, China; 2. School of Teacher Education of Leshan Normal University)
Abstract: This paper analyzes the storage structure of image with Alpha channel, and fundamentally expounds the action mechanism of Alpha channel on image, in order to solve the understanding difficulties encountered in the process of image processing and image recognition. The application effect in advanced image processing is emphatically analyzed, and a typical image processing example is given for operational dissecting, so as to confirm the special function of Alpha channel from the experimental results.
Key words: image layer; channel; mask; path
0 引言
圖像在高速發展的信息時代,起到了直觀、快速、高效傳遞知識的作用,圖像處理已經跨界發展,不僅僅在圖像設計領域,同樣在多媒體設計,圖像識別與傳輸等諸多領域都有其身影[1]。Alpha通道的學習和運用方面,成為圖像處理過程的一個難點。從Alpha通道的構成上來分析其作用原理,才能對其有根本性的理解,進而在應用上獲得質的飛躍。
1 通道基礎
在數字圖像中,一般采用顏色相加的混合原理(印刷系統一般采用顏色相減的混合原理),也就是紅綠藍(以下簡稱RGB)三基色按照不同的比例進行混合[2],從而形成新的顏色及圖像。在計算機內部,采用二進制數字來保存每個像素的顏色信息,大量的二進制數字構成的矩陣,形成一幅圖像的存儲信息[3]。在RGB圖像的24位真彩色模式下,每個像素分別采用如圖1所示的結構來保存圖像顏色信息(這里討論的是非壓縮格式的保存模式)。
圖1中的三基色分別用不同的二進制數據代表不同顏色的比例,紅色就可以用0到255之間的數字來表達256種不同深淺的紅[4],三種基本色就構成一個像素點的混合色,也就是最終呈現的效果。一副圖片的分辨率就決定了需要多少這樣的二進制數來存儲這幅圖片。圖像的分辨率越高,所占的存儲空間越大,這就解釋了為什么高分辨率圖像的存儲和顯示更耗費計算機資源。
我們來解釋通道的概念,從圖1看,一副圖像是由很多如圖1那樣的結構(三個字節)組織起來的,那么所有的代表紅色的二進制數據(字節)構成的總體,數學上就稱之為一個向量,這個向量就體現了一副圖像的所有像素的紅色信息,這個向量就構成紅色通道了[5]。同樣,綠色通道,藍色通道亦是如此。
2 ALPHA通道
2.1 Alpha通道的由來
為了呈現更為豐富的圖像色彩信息,尤其是體現頭發,玻璃,煙霧,液體等半透明的效果,就在24位的基礎上再增加了一個字節,也就是8位二進制數據,這增加的8位二進制數,并沒有增加顏色的表達數量,也就是說32位深度的圖像并沒有增加顏色數量[6],而是稱為Alpha的通道,結構如圖2所示。
這個新增加的字節,在整個圖像中有和像素數目相同的規模就構成另一個向量,稱為Alpha通道,也稱為@通道。
2.2 Alpha通道對其他的影響
簡單來說,新增加的這個Alpha通道是用來控制圖像的透明程度的[7]。具體來說,由圖2可以看出,每個像素的RGB三個通道由不同的數字來代表不同的顏色比例,混合成這個像素點的綜合色彩。那么這個增加的Alpha通道的數字就是用來表達這個像素點的透明程度的。當這個字節的數字為00000000時,就表達出其余三個字節不起作用,該像素點就透明了或看不見了,在復合通道中被忽略掉了,視覺上,該像素點位置能看見的就是對應的背景層的像素點的顏色了。多個這樣的點就構成了一個透明區域。當Alpha通道為11111111(十進制255)時,說明這個像素點100%不透明,對應像素的混合色彩完全可見,無法看見該像素點背后的背景層像素。用0~255之間的任意一個數字代表這個像素點的透明程度(有些軟件中用Opacity,用不透明程度來表達),視覺上不僅能看見該像素的顏色,透過該像素的顏色,對應背景層的像素也是隱約可見的,這就是半透明效果的來源。這樣,整個Alpha通道向量就完整的表達了一副圖像的每個像素的透明程度[8],從而使圖像呈現效果更為豐富,尤其在需要呈現出若隱若現或虛幻縹緲效果中更為明顯。
可以看出,Alpha通道是對其他的RGB通道都起到控制作用,進而影響到最終效果的復合通道(當然,多層圖像還有層的混合形成最終效果)。那么,具體來說,Alpha通道是怎么影響其他通道的呢,計算機圖形學中,把Alpha通道和其他色彩通道的作用運算方式分兩種,即直通模式和預乘模式[9]。使用直通模式,也即是直接存儲像素點本身的顏色值,顯示時通過Alpha字節屬性進行描述[10],例如(255,0,0,128)就表示這個像素點為50%半透明的純紅色(其中兩個0分別代表綠色和藍色的顏色值為0,沒有顏色信息)。255代表的紅色最大值。在顯示的時候,由軟件再計算成128的結果。但是如果采用預乘的方法,其實就是預先用透明度(0~1之間的百分比,對應0~255之間的整數)和像素的RGB通道值相乘,而非直接存放顏色自身的完整數據。那么上面的同一個像素點,存放的就是(128,0,0,128),顏色值為255預先就和透明度50%相乘了。采用預乘的模式可以適度降低后期處理的運算量,效率更高一些[11]。
2.3 Alpha在圖層混合中的作用
圖像處理過程,往往離不開圖層的混合來合成最終的效果。那么Alpha通道在圖層的混合過程中怎么起作用呢?Photoshop(簡稱PS)是常見專業級圖像處理軟件,其中圖層的混合模式有很多種,以滿足不同的混合需要,多個圖層的混合其實是兩兩混合的。這里就分析兩個圖層混合的過程,我們把上面的圖層成為前景圖層A,下面的圖層稱為背景圖層B。最基本的正常疊加模式的公式其實是result=A*alphaA+B*(1-alphaA)[12],其中Result代表混合結果的顏色值(包含RGB),A代表前景層的顏色值(包含RGB),B代表背景層的顏色值(包含RGB)。如果按分量描述就變成三個公式,即:
Rresult=RA*alphaA+RB*(1-alphaA)? ⑴
Gresult=GA*alphaA+GB*(1-alphaA)? ⑵
Bresult=BA*alphaA+BB*(1-alphaA)? ⑶
對于該公式的簡單理解,就是前景圖層的Alpha值如果30%,那就是說背景圖層就用70%的透明度的顏色值與前景圖層30%的透明度得顏色值進行混合。也就前景圖層的RGB乘以30%和背景圖層乘以70相加,就得到混合結果的RGB顏色值。另外,不同的軟件,不同的層混合模式,還有更為復雜計算方式。
需要值得注意的是,在圖像識別的應用上,如果圖像具備Alpha通道,由于Alpha通道以黑白灰顯示暗部,高光和半透明區域,并不代表具體的像素顏色。這就可能導致識別上的錯誤[13],可以在識別程序上采用預乘的算法把透明度直接計算到RGB的個色彩通道上就能解決。
3 Alpha應用
通過前面的分析,可以看出Alpha通道的數據實際上是反映像素點的透明程度的,那么它就在圖片的半透明效果呈現和圖像混合中起到很大作用。而實際應用中,這個重要的功能往往是由軟件自動自動完成了,不需要或者需要極少的操作就可以實現。而Alpha通道值的兩個特殊值(0,255)恰好反映圖片像素的兩個極端,可見與否,所以在很多軟件中,都用黑白效果來表達Alpha通道的作用效果。具備這樣的Alpha值的像素集中連片就構成選區,若成線性結構就形成路徑。因此,在PS這種專業的圖像處理軟件中,Alpha通道就更多的被用于記錄選區和路徑,以實現蒙版,摳圖等功能。
3.1 選區應用
由于在大多數的圖像處理過程中都遵循同一個基本原則:先選中,后操作,以確保操作對象和范圍的準確性。而Alpha通道正是由于可以記錄和表達各種選區,所以在保存選區和構造選區中得以發揮其長。
首先,選區的保存與恢復。在圖像處理過程中對一些耗費時間多且需要小心翼翼才得以構造完成的選區,比如用套繩等工具小心翼翼形成的選區,可能在后來發現還要反復使用,而中途又必須有取消選擇的需要,甚至隔斷時間,重新打開圖片繼續進行編輯時,還要使用同一選區,如果每次都要重新選擇,就耗時耗力且不可能做到每一次都完全一樣。例如圖3所示的一個選區。
為了能讓已經勾選好的比熊的輪廓記憶反復使用,就可以在首次勾選完成后,用存儲選區的方式,新建一個Alpha通道(圖3命名為“比熊輪廓”)。這個新建的Alpha通道不是顏色通道,只以黑白灰的形式呈現[14],其中白色部分就是選區(當然,也可以說黑色部分是選區,相對而言)。在后續處理的過程中,隨時可以重新利用這個叫做“比熊輪廓”的Alpha通道,重新載入選區,就可以顯著提高工作效率。
其次,利用Alpha對選區的記錄功能,更為高級的應用就是蒙版和摳圖,對于復雜的對象,通過勾選、快速選擇、顏色范圍和蒙版等常規工具難易選擇的摳圖范圍,往往就要考慮Alpha通道專有功能了。在圖4中,如果需要把其中的煙花效果扣除,使用套繩,快速選區和顏色范圍以及蒙版等手段就難以完成,難度太大,而且對于其中半透明的效果更是無法完成。
這個時候就應考慮Alpha通道了,利用Alpha通道摳圖,實際上就是利用Alpha通道對于選區的記錄。一般都需要經過挑選通道,產生Alpha通道,調整色階,載入選區,復制,粘貼等基本過程[15]。其中挑選通道是在RGB三個單獨的顏色通道中觀察、對比,要摳取對象的顏色和周圍背景之間對比情況,挑選對比最明面的通道。圖4的通道中,紅色通道的前景和背景對比最為強烈。第二步就需要根據挑選好的顏色通道產生Alpha通道了,PS中默認的復制通道就產生了Alpha通道。接下來對這個新產生的Alpha通道進行色階調整。色階調整是為了使輸出的黑白更加明顯,凡是不需要的盡可能調整黑色,需要部分盡可能調整白色,中間不同程度的灰色代表半透明區域。必要時可以結合選區,用填充,畫筆等工具將不需要的部分強制處理為黑色,需要部分強制處理為白色(但半透明區域不能強制為白色,否則就成不透明了)。當然還可以借用其他技術手段來達到更好的選擇區分。圖5是已經處理的Alpha通道效果。
當Alpha通道已經明顯區分了需要的部分和不需要的部分后,就可以回到復合通道,在對應圖層中載入Alpha通道所記載的選區,把選擇好的像素復制,并在需要的地方進行粘貼,觀察并繼續進行后期處理。
3.2 路徑應用
不同于數學或網絡中的路徑,表達從起點到終點的路由情況。路徑在圖像處理中是使用貝賽爾曲線所構成的一段閉合或者開放的曲線段[16],路徑其實也是Alpha通道應用的另一種應用形式。路徑作為矢量工具在PS作為一種有益補充工具,自然和CDR中的主打工具的作用不能相提并論。PS圖像處理過程中,結合各錨點的調整功能,可以形成非常柔滑,完美的貝塞爾曲線,這是通過選取功能很難實現的功能。對于不封閉的路徑,通過填充以后就能得到特殊曲線效果。而對于封閉路徑,更能體現Alpha通道應用的優勢。一條封閉的路徑,可以用來構造選區和建立蒙版,這和直接使用PS的Alpha通道是異曲同工。
4 結束語
本文從存儲原理的角度分析了Alpha通道的內在形式和作用,并以平面處理軟件PS為例,進行了Alpha通道的設計應用表現,這個探索過程對于深入理解和應用Alpha通道具有很大幫助。接下來,還需要基于對Alpha通道的應用進行大量練習以及對PS其他功能熟練掌握,才能達到更高的境界。對于Alpha通道的深入理解和掌握是圖像處理應用的基礎。
參考文獻(References):
[1] 何志鵬.數字多媒體圖像處理技術研究[J].電腦知識與技術,2020,7(2):212-213
[2] 王建軍.色彩分離在圖片調色中的應用[J].計算機時代,2018,39(4):54-56
[3] 王建軍.圖層蒙版在半透明圖像處理中的應用[J].計算機時代,2015,33(8):36-37
[4] 李鄭冬.數字圖像處理技術發展探究[J].信息記錄材料,2019,42(2):99-100
[5] 譚靜靜.數字圖像色選分析系統的研究及應用[D].西安科技大學,2018(12):28-30
[6] 黃勇.Photoshop中通道使用技巧[J].電子技術與軟件工程,2017,6(5):59-60
[7] 劉翠芳.計算機圖像處理技術應用分析[J].數字技術與應用,2019,37(12):76-77
[8] 李萬波.計算機技術在紙媒圖像處理中的應用[J].電子技術與軟件工程,2019,7(12):129-130
[9] 楊勤.Alpha預乘的原理及其應用[J].電視字幕(特技與動畫),2006,13(6):66-67
[10] 劉彩紅.網頁設計中計算機圖像處理技術的應用[J].電子技術與軟件工程,2020,7(1):104-104
[11] 逍遙游俠.解決三維出圖黑白邊緣溢出問題:直通(straight)與預乘(premult)alpha剖析[EB/OL],[2019-11-05]. http://blog.sina.com.cn/s/blog_1377810120102vaz1.html/.
[12] 趙紅,魏勇剛,楊剛.一種基于alpha通道的彩色圖像超分辨率方法[J].河北大學學報(自然科學版),2018,57(5):321-324
[13] 段方兵.基于OpenVG的二維圖像處理器設計與C Model實現[D].電子科技大學碩士論文數據庫,2012(9):83
[14] 霍珊.計算機圖像識別的智能化處理方法解讀[J].電子技術與軟件工程,2018,25(12):121-122
[15] 王盼盼,王紫琨.淺談圖像分割專利技術[J].數字通信世界,2020,16(1):62-63
[16] 李智敏,陸宇豪,俞成海.基于深度學習的灰度圖像實際顏色預測.計算機應用,2019,39(12):231-235