顏色模型簡介: RGB與HSV, CMYK相互之間轉換公式整理
RGB, CMYK, HSV顏色空間簡介
- RGB
RGB,R紅色,G綠色,B藍色,適合計算機使用,與人的視覺感知習慣不太相符。SHV(SHB,飽和度S/色度H/亮度B)更符合人的視覺習慣
- CMYK
CMY(K): C青色,M洋紅,Y黃色,K黑色。最佳列印模式,相減混色,處理四個通路。RGB和CMY可以相互變換(RGB/CMY歸一化到1),但RGB顏色和CMYK顏色不能一一對應,存在黑色部分的替代取值問題
- HSV
HSV對人來說是最直觀的顏色模型,H色相,物理意義是光的波長,不同光的波長呈現不同的色相。在HSV模型中,H是光譜顏色在首位相接的顏色環中的角度位置(0~360度),每一種顏色和它的補色相差180度。S是飽和度,S的範圍是[0,1],0代表灰色,1代表白光。S的物理意義是一束光可能有很多種不同波長的單色光構成,如果光的波長成分越多,則純度越低(白光),如果只有單色,則表示色彩的純度很高。V表示色彩的明亮程度,範圍[0,1],增加可以減小V(亮度),增加白色可以減小S(飽和度)。
V=1,S=1是對應於HSV圓錐模型的頂面圓周,這些被模型編碼為純色。一般而言人的視覺可以感知:128中色彩,130中飽和度,23中敏感度,16位儲存一個畫素:H7 S4 V5或者H6 S5 V5
HSV與RGB之間的相互轉換
- 已知畫素的RGB值,求HSV模型的表示
m=max(r,g,b), n=min(r,g,b),其中r,g,b是歸一化的RGB顏色空間的值,求對應於HSV顏色空間的h,s,v
- 已知畫素的HSV表示,求RGB模型的表示
已知該畫素的HSV顏色空間的值是H, S, V,其中H的範圍是[0, 360], S的範圍是[0, 1], V的範圍是[0, 1],求對應RGB顏色空間的r, g, b
CMYK與RGB之間的相互轉換
- 已知畫素的CMYK表示,求RGB表示
已知CMYK顏色空間的值c,m,.y,k的範圍是[0, 1],RGB顏色空間的值r, g, b的範圍是[0, 255],CMYK到RGB的轉換如下:
r= 255 *(1 -c) *(1 -k)
g= 255 *(1 -m) *(1 -k)
b= 255 *(1 -y) *(1 -k)
- 已知畫素的RGB表示,求CMYK的表示
已知RGB的值為R, G, B,範圍是[0, 255],求CMYK顏色空間的值c, m, y, k,對應的
R, G, B歸一化的值是r, g, b,範圍[0, 1]
r =R/ 255
g =G/ 255
b
k = 1 - max(r, g, b)
c= (1 -r-k) / (1 -k)
m= (1 -g-k) / (1 -k)
y= (1 -b-k) / (1 -k)
公式參考: