彻底搞懂Lab 颜色空间
本文參考wikipedia,并加入了自己的理解,有不對的地方多多指教~
名稱
在開始之前,先明確一下Lab顏色空間(Lab color space)的名字:
- Lab的全稱是CIELAB,有時候也寫成CIE L*a*b*
- 這里的CIE代表International Commission on Illumination(國際照明委員會),它是一個關于光照、顏色等的國際權威組織。
通道
Lab是由一個亮度通道(channel)和兩個顏色通道組成的。在Lab顏色空間中,每個顏色用L、a、b三個數字表示,各個分量的含義是這樣的:
- L*代表亮度
- a*代表從綠色到紅色的分量
- b*代表從藍色到黃色的分量
Perceptual uniform
Lab是基于人對顏色的感覺來設計的,更具體地說,它是感知均勻(perceptual uniform)的。Perceptual uniform的意思是,如果數字(即前面提到的L、a、b這三個數)變化的幅度一樣,那么它給人帶來視覺上的變化幅度也差不多。
Lab相較于RGB與CMYK等顏色空間更符合人類視覺,也更容易調整:想要調節亮度(不考慮Helmholtz–Kohlrausch effect,見下注)就調節L通道,想要調節只色彩平衡就分別調a和b。
注:Helmholtz–Kohlrausch effect是人眼的一種錯覺——當色彩飽和度高時,顏色會看起來更亮。
設備無關
Lab有個很好的特性——設備無關(device-independent)。也就是說,在給定了顏色空間白點(white point)(下圖中表示了一種顏色空間的白點)之后,這個顏色空間就能明確地確定各個顏色是如何被創建和顯示的,與使用的顯示介質沒有關系。
這么牛X的特性不用肯定浪費啊,舉個典型的栗子,當你想把屏幕上的RGB圖片轉成打印用的CMYK圖片的時候,就可以先將它從RGB轉成LAB,然后再把LAB圖片轉成CMYK模式。我們可以放心大膽滴這么做,因為LAB的色域(gamut)比RGB和CMYK都要大(Lab色域很大,有一大部分已經超出了人類視覺范圍,也就不能稱之為“顏色”了)。
需要注意的是,Lab定義的是相對于白點的顏色,只有定義完白點是什么顏色(比如定義為CIE standard illuminant D50),我們才能知道其他的顏色。
數值范圍
理論上說,L*、a*、b*都是實數,不過實際一般限定在一個整數范圍內:
- L*越大,亮度越高。L*為0時代表黑色,為100時代表白色。
- a*和b*為0時都代表灰色。
- a*從負數變到正數,對應顏色從綠色變到紅色。
- b*從負數變到正數,對應顏色從藍色變到黃色。
- 我們在實際應用中常常將顏色通道的范圍-100~+100或-128~127之間。
可視化
我們可以看到,L*a*b*一共有三個分量,因此可以在三維空間中呈現。
在二維空間中,常用chromaticity diagram來可視化它,也就是固定亮度L,看a和b的變化。注意,這些可視化不是精確的,只是能幫助人理解。
CIELUV
有一個顏色空間和CIELAB很像,叫 CIE 1976 (L*, u*, v*) ,也叫CIELUV。這個顏色空間的L*是和CIELAB一樣的,但顏色分量不一樣。
LAB和RGB、CMYK之間的轉換
由于RGB和CMYK都是設備相關的,因此不能直接和LAB互相轉換。所以在轉換之前,必須定義一種絕對的顏色空間,比如sRGB或者Adobe RGB。
從RGB轉到sRGB是設備相關的,但之后的變換是設備無關的。
總結
以上是生活随笔為你收集整理的彻底搞懂Lab 颜色空间的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Activiti多人会签的实现 Acti
- 下一篇: mysql查询3个表_mysql如何实现