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

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

光學三原色與印刷三間色

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

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

印刷色是光照射在印刷物上, 而後折射到人眼的光的合成,因此印刷色會比光學暗淡,由於印刷色是通過印刷物過濾過光合成的,天然會比較相對暗淡。3d

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

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

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

光學三原色如何獲得白色, 配色以下:get

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

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

咱們顯示屏通常採用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呢?其實它也並非真實的,咱們再來看一副更精確的視錐細胞響應曲線

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

注意到了嗎?實際上在比藍光中較短的波段紅色視錐細胞的響應也比較突出,大概是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 - 計算機視覺與計算機圖形學的圖像處理所涉及的基礎理論知識 - 周陸軍的我的網站,原文閱讀體驗可能更好,文章更新只在源站進行,若有不妥之處,請留言告知,多謝

參考文章:

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

相關文章
相關標籤/搜索