色彩空間RGB/CMYK/HSL/HSB/HSV/Lab/YUV基礎理論及轉換方法:RGB與YUV

之前做個設計,現在從事IT,腦子裏面關於RGB,RGBA,CMY,CMYK,YUV,但是具體理論還是不紮實。若干年前之前寫過《水煮RGB與CMYK色彩模型—色彩與光學相關物理理論淺敘》《三色視者與四色視者身後的理論基礎:色彩原理

光學三原色與印刷三間色

光學的三原色: 紅(Red)、綠(Green)、藍(Blue) (RGB)。

印刷的三原色: 青(Cyan)、品紅(Magenta)、黃(Yellow) (CMYK)

印刷色是光照射在印刷物上, 然後折射到人眼的光的合成,所以印刷色會比光學暗淡,因爲印刷色是經過印刷物過濾過光合成的,自然會比較相對暗淡。

C(100)  +M(100) +Y(100) = 黑色(100,100,100)

可見黑色就是青色、品與×××之和,但是這三種顏色混成的黑色不夠純,所以印刷學就引進了K(Black)黑色,因爲B已經被Blue佔用,所以黑色就只好用引文字母黑色的最後一個字母K,所以:

C(100)  +M(100) +Y(100) + K(100) 等價於 C(0)  +M(0) + Y(0) + K(100) = 黑色

光學三原色如何得到白色, 配色如下:

R(0) + G(0) + B(0)+A(255) =  C(0)  +M(0) + Y(0) + K(100) = 黑色

聯想下,是不是可見黑色就是沒有顏色(0,0,0)?

我們顯示屏一般採用RGB,印刷採用CMY。RGB/CMY色彩模型是通過不同量的(紅/綠/藍)||(青/品紅/黃)來描述一個顏色的,對人類來說很不直觀,難以理解。他們對機器很友好的色彩模式,但並不夠人性化,難以直觀理解,因爲我們對色彩的認識往往是:什麼顏色?鮮豔不鮮豔?亮還是暗?

三原色與三間色組合色相環圖示

基於RGB改進的HSL/HSV色彩模型

HSL 模式和HSB(HSV) 都是基於 RGB 的,是作爲一個更方便友好的方法創建出來的。HSB和HSV是是一樣的,只是叫法不一樣而已

  • HSL:色相H(Hue) ,飽和度S(Saturation),亮度L(Lightness)

  • HSB:色相H(Hue) ,飽和度S(Saturation),明度B(Brightness)

色相H(Hue)控制顏色種類,取值0-360°的圓心角。需要記住色相環上的六大主色:紅黃綠青藍洋紅(即RGB夾CMY呈60°分佈)用作基本參照

飽和度S(Saturation)控制顏色的純度。取值0-100%。數值越大,顏色中的灰色越少,顏色越鮮豔,呈現一種從灰度到純色的變化

亮度L(Lightness)明度B(Brightness)控制色彩的明暗變化,取值0-100%。

HSB與HSB其中的S與L有着不同的表述。這裏暫且忽略,推薦閱讀:色彩空間中的 HSL、HSV、HSB 有什麼區別- AK23的回答 - 知乎

Lab顏色模型

Lab顏色模型是由國際照明委員會(CIE:International Commission on illumination)制定的一種色彩模式。

  • L*代表明度,取值0~100

  • a*代表從綠色到紅色的分量 ,取值-128~127

  • b*代表從藍色到×××的分量,取值-128~127

這樣規定是根據人類的視覺原理,靈長類動物的視覺都有兩條通道:紅綠通道和藍黃通道,大多數動物最多隻有一條通道,如果有人缺失其中一條,就是我們所說的色盲。

其實,我們生活中所說的顏色和光譜中可見光的顏色並不是嚴格對等的。實際上,存在兩種顏色的定義

  • 自然界真實存在的顏色:嚴格對應波長,實際上所謂的不同的顏色就是可見光電磁波的不同波長(或者能量不同)的光子。比如波長爲550nm的光子、波長爲700 nm的光子...

  • 人眼感知的顏色:人眼對整個可見光譜的感知。因爲人眼視網膜上,主要負責感知色彩的視錐細胞對不同波長的光子的感知並不相同,存在一個相應的範圍

而人眼對不同波長的感知能力可以用下圖中的白色曲線來表示。白線對應的值越高,表示人眼對此波段的光子的感知越靈敏。人眼把S那條線感受到的光子都認知爲藍色、把M那天線的認知爲綠色、把L那天線對應的認知爲紅色。

實際上,上述的三種顏色:藍、綠和紅色(RGB)正是我們所知道的三原色。所以,事實上,你只能看到三種顏色:藍綠紅!等等……事實不是這樣啊!我們的世界明明豐富多次啊??你怎麼在這裏瞎扯?其實,你看到的多種多樣的顏色是這三種顏色組合在一起的結果。這三種顏色好比一個三維空間裏的三個座標,你把他們不同程度的組合起來,就可以形成各種各樣的顏色。實際上,他們形成了一個3D的色彩空間,如下圖,空間中每一個點都代表了一種顏色。

所以你看到的顏色其實就是人眼在對藍綠紅這三種光子的測量,然後線性的疊加而已!其實我們的RGB顯示器就是運用了這個原理,顯示出不同的色彩。所以,很多顏色並不是真正的一個顏色而已,它代表的是這個物體發出的光中,藍綠紅這三種光的相對強度的組合!!這些美麗的顏色中很大一部分其實只是你的腦補而已…… [不過,因爲人眼視錐細胞的響應也存在飽和,也就是說藍、綠和紅不可能無限的亮,因此,人類的感知只是這個三維空間裏的一個有限區域。這也是CIE定義出他們最有名的CIE色表的來源。因爲人類對色彩的感知是有限的,且我們實際上對實際的光譜更感興趣,所以,根據人眼對色彩的響應曲線,我們可以把上面的三維空間變換到二維(如下圖)

而這二維的平面涵蓋了人眼能看到的所有顏色(注意,實際上上述的三維色彩空間裏有很大一部分是人眼無法識別的顏色,因爲人眼視錐細胞的感光能力是有限的!),於是就形成了下面的CIE圖,此圖是1976年的修改標準,該圖最早由1931年提出。


而,通過數學運算,不難算出真實光譜,比如450nm的光應該什麼顏色的。你只需要把450nm處三種顏色的視錐細胞的響應疊加起來就行了。通過這樣的方法,你就可以計算出一條曲線,它可以近似代表自然界中真實的色彩。此外,你還可以計算出色溫曲線。如果你還記得黑體這個概念的話,不同溫度會給出不同的能譜分佈,如下圖,不同的能譜分佈中,藍、綠和紅色的相對強度不同。

那麼同樣通過數學的運算,你可以計算出不同溫度黑體在人眼中所反映出的“顏色”。就是圖中間的那條曲線。太陽的溫度是~6000K,於是我們可以對應出來,太陽是白色(偏一點點黃)。]然而,還需要提到的是,上面說的是物體發出的光,比如太陽(黃白色),還有你的顯示器。那麼綠葉的顏色又是怎麼回事?白紙呢?白種人爲什麼那麼白?黑人爲什麼那麼黑?因爲他們不發光。所以,其實他們的顏色只是他們反射的光中藍綠紅這三種光的相對強度的組合!!因此,對於反光的物體來說,光源的顏色覆蓋很重要。這也是爲什麼我們使用日光燈或者白光燈的原因。試想一下,如果你用綠光燈,你還能看到豐富多彩的衣服和圖畫嗎?值得一提的是,漢語裏的紫色其實是一個比較模糊的概念,既可以對英語英語裏的violet,也可以是purple。嚴格來說,violet更接近比藍波波長更短的顏色,也就是紅和綠都很少,而藍色也很弱的情形。相當於黑中加了點藍的感覺。而紫色則是純粹的腦補大紅+大藍而已。不管則樣,紫色並不是真實的顏色。那麼violet呢?其實它也並不是真實的,我們再來看一副更精確的視錐細胞響應曲線

20190804223347110754378.jpg

或者爲了更加嚴謹,我們來看看論文裏實際的測量曲線:

注意到了嗎?實際上在比藍光中較短的波段紅色視錐細胞的響應也比較突出,大概是0.1,而藍色大概是0.7-0.8。因此,你看到的violet也是藍+紅組合的結果。

一句話總結,我們大致可以理解爲,顏色是自然界的可見光波段的光譜在人眼中的一個線性投影。我們可以更具CIE,把人眼中看到的“顏色”,還原到自然界“真實的顏色”


自然界中任何一點色都可以在Lab空間中表達出來,它的色彩空間比RGB空間還要大(有毛用?超過了RGB色域屏幕顯示不了,超過了CMYK的色域打印不了,超過了視覺色域看都看不了!高精度下lab偶爾可以作爲顏色模式的中間標尺,但是這和你一點關係都沒有。這純粹是數學公式定義的結果——色域很大純粹是因爲定義範圍內有許多多餘的顏色)。不過對PS用戶來說:LAB最大的優勢就是調色,最常用的也是調色。明度和色彩信息因爲是分離的,可以允許做出更多的操作,更精準的調整。也可以通簡單的調整就出做一些別的模式非常複雜的操作才能達到的效果。比如照片過暴導致高光細節丟失嚴重,就可以用LAB修補高光部分的色彩信息。

這種模式是以數字化方式來描述人的視覺感應, 與設備無關,所以它彌補了RGB和CMYK模式必須依賴於設備色彩特性的不足。由於Lab的色彩空間要比RGB模式和CMYK模式的色彩空間大。

注:

Catmull和Smith在1971至1972年間提出了這個不可或缺的alpha數值,使得alpha渲染和alpha合成變得可能。提出者以alpha來命名是源於經典的線性插值方程αA + (1-α)B所用的就是這個希臘字母。PNG是一種使用RGBA的圖像格式。

注:一般兩個色彩空間,找一個變換矩陣,可以快速轉換。

rbg與xyz色彩空間矩陣變換

原文鏈接:色彩空間RGB/CMYK/HSL/HSB/HSV/Lab/YUV基礎理論及轉換方法:RGB與YUV - 計算機視覺與計算機圖形學的圖像處理所涉及的基礎理論知識 - 周陸軍的個人網站,原文閱讀體驗可能更好,文章更新只在源站進行,如有不妥之處,請留言告知,多謝


參考文章:

色彩空間表示與轉換 https://zhuanlan.zhihu.com/p/24281841


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章