原文: https://www.cnblogs.com/justkong/p/6570914.html
一锹雏、概述
顏色通常用三個(gè)獨(dú)立的屬性來描述巴比,三個(gè)獨(dú)立變量綜合作用,自然就構(gòu)成一個(gè)空間坐標(biāo)礁遵,這就是顏色空間轻绞。但被描述的顏色對(duì)象本身是客觀的,不同顏色空間只是從不同的角度去衡量同一個(gè)對(duì)象佣耐。顏色空間按照基本機(jī)構(gòu)可以分為兩大類:基色顏色空間和色政勃、亮分離顏色空間。前者典型的是RGB兼砖,后者包括YUV和HSV等等稼病。
二、RGB顏色空間
1掖鱼、計(jì)算機(jī)色彩顯示器和彩色電視機(jī)顯示色彩的原理一樣,都是采用R援制、G戏挡、B相加混色的原理,通過發(fā)射出三種不同強(qiáng)度的電子束晨仑,使屏幕內(nèi)側(cè)覆蓋的紅褐墅、綠、藍(lán)磷光材料發(fā)光而產(chǎn)生色彩洪己。這種色彩的表示方法稱為RGB色彩空間表示妥凳。
2、在RGB顏色空間中答捕,任意色光F都可以用R逝钥、G、B三色不同分量的相加混合而成:F=r[R]+r[G]+r[B]拱镐。RGB色彩空間還可以用一個(gè)三維的立方體來描述艘款。當(dāng)三基色分量都為0(最弱)時(shí)混合為黑色光;當(dāng)三基色都為k(最大沃琅,值由存儲(chǔ)空間決定)時(shí)混合為白色光哗咆。
3、RGB色彩空間根據(jù)每個(gè)分量在計(jì)算機(jī)中占用的存儲(chǔ)字節(jié)數(shù)分為如下幾種類型:
(1)RGB555
RGB555是一種16位的RGB格式益眉,各分量都用5位表示晌柬,剩下的一位不用姥份。
高字節(jié) -> 低字節(jié)
XRRRRRGGGGGBBBBB
(2)RGB565
RGB565也是一種16位的RGB格式,但是R占用5位年碘,G占用6位澈歉,B占用5位。
(3)RGB24
RGB24是一種24位的RGB格式盛泡,各分量占用8位闷祥,取值范圍為0-255。
(4)RGB32
RGB24是一種32位的RGB格式傲诵,各分量占用8位凯砍,剩下的8位作Alpha通道或者不用。
4拴竹、RGB色彩空間采用物理三基色表示悟衩,因而物理意義很清楚,適合彩色顯象管工作栓拜。然而這一體制并不適應(yīng)人的視覺特點(diǎn)座泳。因而,產(chǎn)生了其它不同的色彩空間表示法幕与。
三挑势、YUV顏色空間
1、YUV(亦稱YCrCb)是被歐洲電視系統(tǒng)所采用的一種顏色編碼方法啦鸣。在現(xiàn)代彩色電視系統(tǒng)中潮饱,通常采用三管彩色攝像機(jī)或彩色CCD攝影機(jī)進(jìn)行取像,然后把取得的彩色圖像信號(hào)經(jīng)分色诫给、分別放大校正后得到RGB香拉,再經(jīng)過矩陣變換電路得到亮度信號(hào)Y和兩個(gè)色差信號(hào)R-Y(即U)、B-Y(即V)中狂,最后發(fā)送端將亮度和兩個(gè)色差總共三個(gè)信號(hào)分別進(jìn)行編碼凫碌,用同一信道發(fā)送出去。這種色彩的表示方法就是所謂的YUV色彩空間表示胃榕。采用YUV色彩空間的重要性是它的亮度信號(hào)Y和色度信號(hào)U盛险、V是分離的。如果只有Y信號(hào)分量而沒有U勤晚、V信號(hào)分量枉层,那么這樣表示的圖像就是黑白灰度圖像。彩色電視采用YUV空間正是為了用亮度信號(hào)Y解決彩色電視機(jī)與黑白電視機(jī)的兼容問題赐写,使黑白電視機(jī)也能接收彩色電視信號(hào)鸟蜡。
2、YUV主要用于優(yōu)化彩色視頻信號(hào)的傳輸挺邀,使其向后相容老式黑白電視揉忘。與RGB視頻信號(hào)傳輸相比跳座,它最大的優(yōu)點(diǎn)在于只需占用極少的頻寬(RGB要求三個(gè)獨(dú)立的視頻信號(hào)同時(shí)傳輸)。其中“Y”表示明亮度(Luminance或Luma)泣矛,也就是灰階值疲眷;而“U”和“V” 表示的則是色度(Chrominance或Chroma),作用是描述影像色彩及飽和度您朽,用于指定像素的顏色狂丝。“亮度”是透過RGB輸入信號(hào)來建立的哗总,方法是將RGB信號(hào)的特定部分疊加到一起几颜。“色度”則定義了顏色的兩個(gè)方面─色調(diào)與飽和度讯屈,分別用Cr和Cb來表示蛋哭。其中,Cr反映了RGB輸入信號(hào)紅色部分與RGB信號(hào)亮度值之間的差異涮母。而Cb反映的是RGB輸入信號(hào)藍(lán)色部分與RGB信號(hào)亮度值之同的差異谆趾。
3、YUV和RGB互相轉(zhuǎn)換的公式如下(RGB取值范圍均為0-255)︰
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
四叛本、HSV顏色空間
1沪蓬、HSV是一種將RGB色彩空間中的點(diǎn)在倒圓錐體中的表示方法。HSV即色相(Hue)来候、飽和度(Saturation)怜跑、明度(Value),又稱HSB(B即Brightness)吠勘。色相是色彩的基本屬性,就是平常說的顏色的名稱峡眶,如紅色剧防、黃色等。飽和度(S)是指色彩的純度辫樱,越高色彩越純峭拘,低則逐漸變灰,取0-100%的數(shù)值狮暑。明度(V)鸡挠,取0-max(計(jì)算機(jī)中HSV取值范圍和存儲(chǔ)的長(zhǎng)度有關(guān))。HSV顏色空間可以用一個(gè)圓錐空間模型來描述搬男。圓錐的頂點(diǎn)處拣展,V=0,H和S無定義缔逛,代表黑色备埃。圓錐的頂面中心處V=max姓惑,S=0,H無定義按脚,代表白色于毙。
2、RGB顏色空間中辅搬,三種顏色分量的取值與所生成的顏色之間的聯(lián)系并不直觀唯沮。而HSV顏色空間,更類似于人類感覺顏色的方式堪遂,封裝了關(guān)于顏色的信息:“這是什么顏色介蛉?深淺如何?明暗如何蚤氏?”
3甘耿、RGB和HSV轉(zhuǎn)換
(1)從RGB到HSV
設(shè)max等于r、g和b中的最大者竿滨,min為最小者佳恬。對(duì)應(yīng)的HSV空間中的(h,s,v)值為:
h在0到360°之間,s在0到100%之間于游,v在0到max之間毁葱。
(2)從HSV到RGB