顏色空間

顏色空間Color Space)常見的包括:RGB、RGBA、CMYK、YUV、HSL和HSV/HSBwindows

RGBwiki中文)顏色模型編碼

RGB顏色模型是基於人眼感光的生理特色,將紅(Red)、綠(Green)、藍(Blue)三原色的色光按不一樣的比例相加來讓人眼感覺到不一樣的顏色。spa

電視和計算機彩色顯示器(CRT或LCD)都是使用該模型來產生顏色 .net

(0, 0, 0) 表示純黑色,(255, 255, 255)表示純白色。詳見:RGB顏色對照表設計

RGBAwiki中文)顏色模型3d

在RGB模型的基礎上增長了不透明度參數alpha,使得alpha渲染和alpha合成變得可能。alpha=0爲全透明,alpha=1爲不透明blog

PNG是一種使用RGBA的圖像格式ip

RGBA轉RGBget

在背景顏色Bkg(R, G, B)上,疊加一個Color(R, G, B, A),獲得的目標顏色Target爲:io

Target.R = Bkg.R * (1 - Color.A) + Color.R * Color.A
Target.G = Bkg.G * (1 - Color.A) + Color.G * Color.A
Target.B = Bkg.B * (1 - Color.A) + Color.B * Color.A

注1:各顏色份量都歸一化到[0.0, 1.0]範圍內

注2:A爲0表示全透,爲1表示不透

以下爲一張純白色圖疊加一張透明圖的結果

CMYKwiki中文)顏色模型

CMYK用於印刷行業。光線疊加的原理是越疊越亮,然而打印機打印是油墨,顏料的疊加是顏色越多越黑 

C:Cyan = 青色
M:Magenta = 洋紅色,又稱爲「品紅色」
Y:Yellow = 黃色
K:blacK = 黑色

RGB與CMYK轉換公式

RGB、CMYK各顏色份量的範圍爲:[0, 1]

RGB --> CMYK

當爲純黑色時,即RGB=(0,0,0):,CMYK=(0,0,0,1)

其餘狀況時:

CMYK  -->  RGB

 

YUVwiki中文)顏色模型

YUV(Y是明亮度 -- Luminance、Luma,U是色度 -- Chrominance、V是濃度 -- Chroma;UV表明彩度)是一種顏色編碼方法,Y'UV, YUV, YCbCr,YPbPr等專有名詞均可以稱爲YUV。

白色是明亮的顏色,而灰色被認爲是不太亮的白色。換句話說,白色和灰色的色度是同樣的,而明亮度不一樣。

將亮度信息(Y)與色彩信息(UV)分離,沒有 UV 信息同樣能夠顯示完整的圖像,只不過是黑白的,這樣的設計恰好解決了彩色電視機與黑白電視的兼容問題。

下圖爲Y=0.5的UV顏色面板

RGB與YUV轉換公式

RGB、YUV各顏色份量的範圍爲:[0, 1]

RGB --> YUV

Y= 0.299⋅R+0.587⋅G+0.114⋅B
U=-0.147⋅R-0.289⋅G+0.436⋅B 
V= 0.615⋅R-0.515⋅G-0.100⋅B

注:將彩色圖像轉換成灰色圖像,就是從RGB求得Y明亮度的過程   即:灰度 = 0.299⋅R+0.587⋅G+0.114⋅B

YUV --> RGB

R= Y+1.14⋅V
G= Y-0.39⋅U-0.58⋅V
B= Y+2.03⋅U

 

HSL和HSV/HSBwiki中文)顏色模型

HSL(H是色相 -- Hue,S是飽和度 -- Saturation,L是亮度 -- Lightness) 注:windows的畫圖軟件使用的是該模型

HSV(H是色相 -- Hue,S是飽和度 -- Saturation,V是明度 -- Value),又稱HSB(B -- Brightness)   注:Adobe Photoshop使用的是該模型

都是一種將RGB色彩模型中的點在圓柱座標系中的表示法。 

色相(Hue)是色彩的外相,是在不一樣波長的光照射下,人眼所感受到的不一樣的顏色,如紅色、黃色、藍色等。範圍:[0, 360)

windows的畫圖軟件中將色相稱之爲色調,以下:

飽和度(Saturation)又稱也叫色度或彩度指色彩的純度,越高色彩越純(如大紅就比玫紅更紅,即大紅的飽和度要高),低則逐漸變灰,黑色、白色以及灰色都是飽和度=0的顏色。範圍:[0, 1]

飽和度由光線強弱和在不一樣波長的強度分佈有關。最高的飽和度通常由單波長的強光(例如激光)達到,在波長分佈不變的狀況下,光強度越弱則飽和度越低

亮度(Lightness)、明度(Value or Brightness)指顏色的亮度,不一樣的顏色具備不一樣的明度,例如黃色就比藍色的明度高  範圍:[0, 1]

 

HSL更好的反映了「飽和度」和「亮度」做爲兩個獨立參數的直覺觀念

① 在HSL中,飽和度份量老是從徹底飽和色變化到等價的灰色(在HSV中,在極大值V的時候,飽和度從全飽和色變化到白色,這能夠被認爲是反直覺的)
② 在HSL中,亮度跨越從黑色過選擇的色相到白色的完整範圍(在HSV中,V份量只走一半行程,從黑到選擇的色相)

可是對於另外一些人,它的飽和度定義是錯誤的,由於很是柔和的幾乎白色的顏色在HSL能夠被定義爲是徹底飽和的

 

HSL與HSV轉換公式

H範圍: [0, 360)      S範圍:[0, 1]      L、V範圍:[0, 1]

HSV  -->  HSL

HSL  -->  HSV

RGB與HSL轉換公式

r、g、b的範圍:[0, 1];max爲r, g和b中的最大者;min爲r, g和b中的最小者。 

H範圍: [0, 360)      S範圍:[0, 1]      L範圍:[0, 1]

RGB --> HSL

HSL --> RGB

當S=0時(爲灰色的狀況):

當S ≠ 0時:

 

RGB與HSV轉換公式

r、g、b的範圍:[0, 1];max爲r, g和b中的最大者;minr, g和b中的最小者。 

H範圍: [0, 360)      S範圍:[0, 1]      V範圍:[0, 1]

RGB --> HSV

HSV --> RGB

相關文章
相關標籤/搜索