為什麼會以紅、綠、藍當作色彩的三原色呢?又為什麼可以透過紅光、綠光、藍光的混合產生不同的顏色呢?本文告訴你數位影像的表示型式,以及色彩感知、取像與顯像的基本原理。
大多數人都有使用手機或數位相機拍攝照片的經驗,不曉得讀者有沒有想過,電腦是怎樣表示一張數位影像的呢?人又是如何看到影像中的顏色呢?學過電腦概論的人都知道,電腦是由0與1的二進制位元(bit)所構成,透過許多0、1的組合,可以在電腦中表示出數值、指令或資料。例如「101011」這6個二進制位元,就對應到十進位的(25 × 1 + 24 × 0 + 23 × 1 + 22 × 0 + 21 × 1 + 20 × 1)= 43這個數值。數位影像又是如何由二進制位元構成的呢?
構成數位影像的基本單位稱作「像素」或「畫素」,以一般灰階影像為例,一個像素是由8個位元(也就是一個位元組)所構成,用來表示20-1= 0到28-1= 255總共256個灰度值。其中,數值0表示黑色,數值255表示白色,介在0到255之間的數值,則表示由黑到白之間不同的灰度值,一張灰階數位影像便是由許多像素依照長、寬大小排列而成。
例如,在電腦影像處理中著名的Lenna影像中的美女,是由長512個像素、寬512個像素,總共512 × 512 = 262,144個像素排列所構成。如果把轉換成黑白的Lenna影像中的左邊眼睛的區域放大,則可看到眼睛部位的像素亮度分布,其中每個小方格代表一個8位元像素所顯示的灰度值。由這可知,灰階數位影像同樣可用二進制位元來表示,透過8位元像素的排列,來呈現出多變的影像內容。
灰階影像是由8位元的像素表示,彩色影像又該如何表示呢?大家都知道色彩的三原色是紅、綠、藍,疊加三原色的光可以混合產生不同的顏色。同樣地,電腦在顯示彩色數位影像時,也是用三原色疊加混合的方式表示。把紅(R)、綠(G)、藍(B)三原色以3個8位元的數值表示各原色的強度,並疊加混合構成一個彩色像素。例如:
{R,G,B} = {255,0,0} 表示最亮的紅色,
{R,G,B} = {0,0,255} 表示最亮的藍色,
{R,G,B} = {255,255,255} 表示最亮的白色,
{R,G,B} = {0,0,0} 表示最暗的黑色,
{R,G,B} = {255,255,0} 表示最亮的黃色,
{R,G,B} = {128,128,0}表示較暗的橄欖黃色。
如果把紅、綠、藍三原色的強度值當成三個座標軸,便形成一個三維的色彩立方體。立方體中的每個點都可以用一組三維 {R,G,B} 座標來描述一個特定的顏色,在這個立方體中,共有256 × 256 × 256 = 16,777,216個點,用來顯示電腦螢幕的色彩空間。值得一提的是,當紅、綠、藍三色混合的比例相等時(即R=G=B),人眼看到的是灰色,對應到前述0~255的灰階變化。
讀者是否會好奇,為什麼會以紅、綠、藍當作色彩的三原色呢?又為什麼可以透過紅光、綠光、藍光的混合產生不同的顏色呢?在解答這個問題之前,需要先了解其實「色彩」是生物透過眼睛,對物理上不同波長的光產生不同視覺刺激生理訊號,經由神經傳導到腦部,進而形成對光波感知、覺受的描述。也因此,色彩是一種與生物視覺感官刺激相關的(主觀)感知量值的描述,而非全然客觀的物理量。
進一步來說,人眼視網膜中有桿狀與錐狀兩種不同的感光細胞,桿狀細胞在微光中對光線亮度敏感,主導了人在夜間的黑白視覺感受;錐狀細胞則與人的顏色感知相關。錐狀細胞可再分為L、M、S三種類型,L型錐狀細胞對長波長的光(約對應到視覺感知上紅色區段)具高敏感度,並在波長560奈米附近有最強的生理感光刺激反應;M型與 S 型錐狀細胞則分別對中波長與短波長的光較敏感(約分別對應到視覺感知上綠色與藍色區段),它們的感光刺激反應峰值分別在530奈米與420奈米附近。
會以紅、綠、藍做為色彩的三原色,與人類眼睛的錐狀感光細胞構造相關。其他不同的生物,視網膜上的感光細胞構造、型態種類不同,也就有不同的視覺原色數量(如可能是兩種或十幾種)。
當不同波長的光進入眼睛時,3種錐狀細胞同時接收到光線,產生不同的感光刺激訊號反應。這3類生理刺激訊號傳入大腦後,便產生不同顏色的感受。例如當600奈米光波進入眼睛時,L型與M型的錐狀細胞分別會產生高與低的刺激訊號,S型錐狀細胞的刺激反應則趨近於零。這時,眼睛中許多錐狀細胞產生的刺激訊號一同傳入大腦,並經由大腦處理解讀後,便使人產生「橘色」的顏色感受。
有趣的是,科學家們很早就發現,可以透過紅、綠、藍三色燈光(如採用波長峰值分別約為紅燈700奈米、綠燈546奈米、藍燈436奈米左右的燈具),利用各別燈具打光強度的調整與光線疊合,使人產生等同於600奈米光波的橘色感受。這時的三色燈打光激發了與600奈米光波約略等量的L、M、S錐狀細胞刺激反應訊號,經大腦解讀後,產生與600奈米光波相近的橘色顏色感知。
介在390奈米到700奈米之間(可見光區段)的單一波長光線(也稱為單色光)進入人眼後所看到的顏色,多數(但非全部)都可以透過紅、綠、藍三色燈光以不同打光強度混合,產生類似該單色光的顏色感受。這也是前述彩色數位影像可以用 {R,G,B} 三原色的不同強度,表示出各式各樣顏色的基礎原理。
上述影像像素表示與色彩感知原理可延伸應用在數位攝影與影像顯示上。大部分數位攝影機中,彩色感光元件的排列多採用拜爾濾色(Bayer Filter,由B. Bayer於1975年提出的美國專利)設計,用來減少彩色數位相機中R、G、B感光元件的數量。在拜爾濾色排列中,每個方格代表一個彩色像素,但每個彩色像素實際只有一個原色感光元件。
如某一個像素只有綠色G感光元件,若要得知這個像素所代表的色彩,則需再補上紅色 R 與藍色B的感光強度值才行。該怎麼補上R、B兩個亮度值呢?最簡單的方式是,把這個像素左右相鄰的兩個紅色感光亮度平均,當作像素的紅色亮度值,把像素上下相鄰的兩個藍色感光亮度值平均,當作像素的藍色亮度值,如此便可以估算出像素的 R、G、B三原色亮度值,又能降低R、G、B感光元件數量,不用每個像素都以三原色感光元件組成,可以只用一個原色的感光元件代表。
值得注意的是,在拜爾濾色的排列中,綠色感光元件的數量是紅、藍色感光元件數量的2倍。這樣的設計方式是因為人眼的L型與M型錐狀細胞都對綠光波段較敏感,因此在相機中安排了2倍的綠光感測元件,來模擬人眼對綠光敏感的感知效果。當前低價的消費型數位相機幾乎都採用拜爾濾色的感光排列方式,做為數位影像取像設計。
在彩色顯示器的設計上,目前常見的液晶顯示器有採用橫列RGB排法來表示一個彩色像素,也有採用由艾略特(C. H. Brown Elliott)於1990年代初期所開發的PenTile RGBG排列型式。這種PenTile RGBG的原色顯示排列型式,目前已廣泛應用在如HTC、Samsung等多款手機螢幕上。
在文中,簡介了數位影像的電腦表示型式,以及色彩感知、取像與顯像的基本原理。在數位影像處理的世界中,許多進階的影像處理計算方法,如影像壓縮、影像色彩美化、高動態範圍處理、雜訊濾除、照片缺損還原,乃至於影像文字識別、智慧型視訊監控、人臉辨識等,都是以基本的影像像素、顏色亮度做為輸入,透過電腦演算法設計,分析整張影像的像素顏色,而產生智慧化的計算成果。
因此,對數位影像與色彩的基本了解,有助於我們認識、學習當前電腦視覺領域的技術發展。也希望讀者日後在觀看照片時,能夠領略光、色彩與數位科技結合帶給我們美好的視覺感受。