1.基于顏色加法混色原理的RGB
RGB顏色模型即紅綠藍(lán)顏色模型。由模仿生物視網(wǎng)膜三種視錐細(xì)胞產(chǎn)生,之后通過(guò)三原色疊加來(lái)進(jìn)行彩色圖像顯示。通過(guò)在黑色上不斷疊加三原色來(lái)顯示不同的顏色。在RGB顏色空間中,分別將RGB作為笛卡爾坐標(biāo)系中XYZ坐標(biāo)系產(chǎn)生。每一個(gè)顏色取值范圍為[0,256)

數(shù)字圖像多采用RGB進(jìn)行存儲(chǔ)和顯示,三個(gè)通道分別分開(kāi)存儲(chǔ)圖像上每個(gè)像素的RGB值,單獨(dú)每個(gè)通道顯示均為灰度圖像,通道為二維矩陣,opencv中存儲(chǔ)通道順序?yàn)锽GR。三通道及多通道圖像表示如下:

2.基于顏色減法混色原理的CMY/CMYK
CMY是青(Cyan)、洋紅或品紅(Magenta)和黃(Yellow)三種顏色,由于三原色得不到純黑色,CMYK則是打印時(shí)加上墨色(black ink),例如青色可以通過(guò)藍(lán)色和綠色光相加得到,則白色通過(guò)青色時(shí),沒(méi)有紅色分量。底色為白色進(jìn)行色彩減法可以得到各種顏色。
RGB與CMYK相互轉(zhuǎn)換為:
R = 255*(100-C)*(100-K)/10000;
G = 255*(100-M)*(100-K)/10000;
B = 255*(100-Y)*(100-K)/10000;
3.YUV
YUV(亦稱(chēng)YCrCb)是被歐洲電視系統(tǒng)所采用的一種顏色編碼方法。采用YUV色彩空間的重要性是它的亮度信號(hào)Y和色度信號(hào)U、V是分離的。如果只有Y信號(hào)分量而沒(méi)有U、V信號(hào)分量,那么這樣表示的圖像就是黑白灰度圖像。彩色電視采用YUV空間正是為了用亮度信號(hào)Y解決彩色電視機(jī)與黑白電視機(jī)的兼容問(wèn)題,使黑白電視機(jī)也能接收彩色電視信號(hào)。其中“Y”表示明亮度(Luminance或Luma),也就是灰階值;而“U”和“V” 表示的則是色度(Chrominance或Chroma,作用是描述影像色彩及飽和度,用于指定像素的顏色。“亮度”是透過(guò)RGB輸入信號(hào)來(lái)建立的,方法是將RGB信號(hào)的特定部分疊加到一起?!吧取眲t定義了顏色的兩個(gè)方面─色調(diào)與飽和度,分別用Cr和Cb來(lái)表示。其中,Cr反映了RGB輸入信號(hào)紅色部分與RGB信號(hào)亮度值之間的差異。而Cb反映的是RGB輸入信號(hào)藍(lán)色部分與RGB信號(hào)亮度值之同的差異。YUV和RGB互相轉(zhuǎn)換的公式如下:
Y = 0.299R + 0.587G + 0.114B
U = -0.147R - 0.289G + 0.436B
V = 0.615R - 0.515G - 0.100B
R = Y + 1.14V
G = Y - 0.39U - 0.58V
B = Y + 2.03U
4.HSV、HSI
RGB可以方便的進(jìn)行計(jì)算機(jī)存儲(chǔ)和讀取,但對(duì)人進(jìn)行顏色判斷十分不友好,因此有了HSV,HSI顏色空間。HSV即色相(Hue)、飽和度(Saturation)、明度(Value),又稱(chēng)HSB(B即Brightness)。
H色相是色彩的基本屬性,就是平常說(shuō)的顏色的名稱(chēng),如紅色、黃色等。飽和度,用角度度量,取值范圍為0°~360°,從紅色開(kāi)始按逆時(shí)針?lè)较蛴?jì)算,紅色為0°,綠色為120°,藍(lán)色為240°。它們的補(bǔ)色是:黃色為60°,青色為180°,品紅為300°;
S是指色彩的純度,越高色彩越純,低則逐漸變灰,取0-100%的數(shù)值。飽和度S表示顏色接近光譜色的程度。一種顏色,可以看成是某種光譜色與白色混合的結(jié)果。其中光譜色所占的比例愈大,顏色接近光譜色的程度就愈高,顏色的飽和度也就愈高。飽和度高,顏色則深而艷。光譜色的白光成分為0,飽和度達(dá)到最高。通常取值范圍為0%~100%,值越大,顏色越飽和。



HSI與HSL使用相同的模型,僅在亮度的描述上不同。

5.Lab
Lab色彩空間(Lab color space)是顏色-對(duì)立空間,帶有維度L表示亮度,a和b表示顏色對(duì)立維度,基于了非線性壓縮的CIE XYZ色彩空間。Lab顏色被設(shè)計(jì)來(lái)接近人類(lèi)視覺(jué)。它致力于感知均勻性,它的L分量密切匹配人類(lèi)亮度感知。因此可以被用來(lái)通過(guò)修改a和b分量的輸出色階來(lái)做精確的顏色平衡,或使用L分量來(lái)調(diào)整亮度對(duì)比。這些變換在RGB或CMYK中是困難或不可能的——它們建模于物理設(shè)備的輸出,而不是人類(lèi)的視覺(jué)感知。因?yàn)長(zhǎng)ab空間比電腦螢?zāi)?、印表機(jī)甚至比人類(lèi)視覺(jué)的色域都要大,表示為L(zhǎng)ab的位圖比RGB或CMYK位圖獲得同樣的精度要求更多的每像素?cái)?shù)據(jù)。
Lab顏色空間中的L分量用于表示像素的亮度,取值范圍是[0,100],表示從純黑到純白;a表示從紅色到綠色的范圍,取值范圍是[127,-128];b表示從黃色到藍(lán)色的范圍,取值范圍是[127,-128]。

RGB-XYZ-Lab轉(zhuǎn)換



XYZ轉(zhuǎn)lab
