My friends, my life, my style - James S.F. Hsieh

11/27/2009

RGB 的物理意義是什麼?


最近因為工作的需求在學習影像處理, 因為我微積分, 線代與工數都不好 (不如說數學都不好), 所以挑了一個自認為比較容易理解 (其實不然) 也比較基本的色彩學來學習, 所以就挑了RGB 與 HSI (HSL) 轉換跟 Color adjust 這個問題.

首先我遇到的第一個問題是 "RGB 的物理意義到底是什麼" 為什麼可以用這樣表示光的色彩!
我從偉大的 Wiki 顏色 與 三原色光模式 找到了答案, 基本上 "顏色" 這種東西不是物理的特性而是生理特性, 光只有強度波長等基本的性質, 而顏色是生物眼睛中的光感細胞接受到光之後在由腦袋詮釋出來的性質. (當生物真好可以看到彩色的世界) 現在我們可以思考為什麼 色彩之間可以組合來產生不同的顏色呢?

首先我們知道 RGB 三色強度的組合在怎樣都不會混合出一道黃色波長的光線, 產生出來的永遠是三道光而每道光有各自的波長, 那為什麼 RGB 可以表現所有的顏色呢? 其實, 生物對顏色的詮釋是個有趣的東西, 不同顏色的感光細胞接受到光線波長的比例不同, 會有不同的反應, 雖然螢幕只有打出紅(255, 0, 0) 跟藍 (0, 0, 255), 但是眼睛卻會認為是粉紅色 (255, 0, 255) 因為眼睛中這兩種光感細胞會同時受到刺激, 而大腦會混合這刺激的結果認為是粉紅色, 而非真的接收到 粉紅色的波長. 而 RGB 就是這複合光的參數. 這也是為什麼 (x, x, x) 三種等比例的光會是灰階的, 因為所有光感細胞都接受到相同強度的刺激, 但是波長或是光的強度是不等的喔. 因為人類對不同顏色的敏感度是不同的. 我們可以想像鳥類或是其他動物 (包含外星人) 看到 RGB 混合產生出來的色彩應該非常畸形吧, 畢竟光的敏感強度是不同的. 其實很多種顏色都不是純色, 粉紅色 白色 灰色 等等都只能混合多種波長來產生, 純色只有彩虹的那幾種單一波長的光線而已.



由於人眼的特性, 所以我們就以 RGB 這樣的模型 擷取 紀錄 重現 顏色, 想想大部分的色彩處理方式諸如 底片, 數位相機 CCD, 投影機, CRT 顯示器, LCD 顯示器, 彩色印刷, 染布, 等都是用這種方式來處理呢, 下一篇來分享我理解的 HSI (HSL) Color space 吧!