原地址:http://cg2010studio.wordpress.com/2012/10/02/rgb與cielab色彩空間轉換/
之前有研究CIE L*a*b*色彩空間,現在想更進一步探討RGB色彩空間轉換至CIE L*a*b*色彩空間。
- 這時候我們想知道,為何需要將RGB色彩空間轉換至CIE L*a*b*色彩空間?
一般影像在儲存像素的色彩時,使用RGB色彩空間來表示一個像素的顏色,這種表示方法可用來傳達一個像素的色彩在紅、綠、藍三個頻道(channel)中的相關性;但是,從RGB表示法無法得知像素的明亮度(luminance)、飽和度(saturation)及色相(hue)為何,因此,我們將像素的色彩由RGB色彩空間轉換至CIELAB(或CIE L*a*b*)。
接下來介紹RGB和CIELAB如何互轉。
#RGB與CIELAB色彩空間轉換
CIELAB色彩空間具有視覺上的均勻性(perceptually uniform),也就是說值的變化量和視覺上感知到的變化量是相同的,例如:值從100變為110與值從0變為10的感覺是相同的,這種表示方法較接近人類的視覺系統,而其它的色彩空間則較不具有這種特性。
CIELAB色彩空間的表示法為(L*, a*, b*),L*代表黑色到白色間的位置,也就是明亮度(luminance),範圍是0~100;a*為綠色(green)到紫紅色(magenta)間的位置,範圍是-500~500;b*為藍色(blue)到黃色(yellow)間的位置,範圍是-200~200;距離圓心愈近飽和度愈底。
為CIELAB色彩空間。
為當L*為25、50、75 時的橫切面。
#RGB 轉CIELAB 色彩空間
先將RGB的值調整為介於0~1之間,再將色彩空間轉換至CIE XYZ色彩空間,以下為其轉換矩陣:
再由CIE XYZ色彩空間轉換至CIELAB色彩空間,方法如下:
#CIELAB轉RGB色彩空間
先將CIELAB色彩空間轉換至CIE XYZ色彩空間,方法如下:
再由CIE XYZ色彩空間轉換回RGB色彩空間,轉換矩陣如下:
最後,將RGB的範圍由0~1調整為0~255。
參考:WiKi - Lab color space、台科大資管所碩士論文—秀拉點描派之電腦模擬。