RGB與CIELAB色彩空間轉換 | rgb lab轉換
RGB與CIELAB色彩空間轉換[1]2012年10月02日之前有研究CIEL*a*b*色彩空間[2],現在想更進一步探討RGB色彩空間轉換至CIEL*a*b*色彩空間。這時候我們想知道,為何需要將RGB色彩空間轉換至CIEL*a*b*色彩空間?一般影像在儲存像素的色彩時,使用RGB色彩空間來表示一個像素的顏色,這種表示方法可用來傳達一個像素的色彩在紅、綠、藍三個頻道(channel)中的相關性;但是,從RGB表示法無法得知像素的明亮度(luminance)、飽和度(saturation)及色相(hue)為何,因此,我們將像素的色彩由RGB色彩空間轉換至CIELAB(或CIEL*a*b*)。接下來介紹RGB和...
RGB與CIELAB色彩空間轉換[1]2012 年 10 月 02 日
之前有研究CIE L*a*b*色彩空間[2],現在想更進一步探討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色彩空間,方法如下:
...