轉自:https://www.cnblogs.com/justkong/p/6570914.htmlhtml
1、概述優化
顏色一般用三個獨立的屬性來描述,三個獨立變量綜合做用,天然就構成一個空間座標,這就是顏色空間。但被描述的顏色對象自己是客觀的,不一樣顏色空間只是從不一樣的角度去衡量同一個對象。顏色空間按照基本機構能夠分爲兩大類:基色顏色空間和色、亮分離顏色空間。前者典型的是RGB,後者包括YUV和HSV等等。編碼
2、RGB顏色空間視頻
一、計算機色彩顯示器和彩色電視機顯示色彩的原理同樣,都是採用R、G、B相加混色的原理,經過發射出三種不一樣強度的電子束,使屏幕內側覆蓋的紅、綠、藍磷光材料發光而產生色彩。這種色彩的表示方法稱爲RGB色彩空間表示。htm
二、在RGB顏色空間中,任意色光F均可以用R、G、B三色不一樣份量的相加混合而成:F=r[R]+r[G]+r[B]。RGB色彩空間還能夠用一個三維的立方體來描述。當三基色份量都爲0(最弱)時混合爲黑色光;當三基色都爲k(最大,值由存儲空間決定)時混合爲白色光。對象
三、RGB色彩空間根據每一個份量在計算機中佔用的存儲字節數分爲以下幾種類型:blog
(1)RGB555io
RGB555是一種16位的RGB格式,各份量都用5位表示,剩下的一位不用。變量
高字節 -> 低字節原理
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通道或者不用。
四、RGB色彩空間採用物理三基色表示,於是物理意義很清楚,適合彩色顯象管工做。然而這一體制並不適應人的視覺特色。於是,產生了其它不一樣的色彩空間表示法。
3、YUV顏色空間
一、YUV(亦稱YCrCb)是被歐洲電視系統所採用的一種顏色編碼方法。在現代彩色電視系統中,一般採用三管彩色攝像機或彩色CCD攝影機進行取像,而後把取得的彩色圖像信號經分色、分別放大校訂後獲得RGB,再通過矩陣變換電路獲得亮度信號Y和兩個色差信號R-Y(即U)、B-Y(即V),最後發送端將亮度和兩個色差總共三個信號分別進行編碼,用同一信道發送出去。這種色彩的表示方法就是所謂的YUV色彩空間表示。採用YUV色彩空間的重要性是它的亮度信號Y和色度信號U、V是分離的。若是隻有Y信號份量而沒有U、V信號份量,那麼這樣表示的圖像就是黑白灰度圖像。彩色電視採用YUV空間正是爲了用亮度信號Y解決彩色電視機與黑白電視機的兼容問題,使黑白電視機也能接收彩色電視信號。
二、YUV主要用於優化彩色視頻信號的傳輸,使其向後相容老式黑白電視。與RGB視頻信號傳輸相比,它最大的優勢在於只需佔用極少的頻寬(RGB要求三個獨立的視頻信號同時傳輸)。其中「Y」表示明亮度(Luminance或Luma),也就是灰階值;而「U」和「V」 表示的則是色度(Chrominance或Chroma),做用是描述影像色彩及飽和度,用於指定像素的顏色。「亮度」是透過RGB輸入信號來創建的,方法是將RGB信號的特定部分疊加到一塊兒。「色度」則定義了顏色的兩個方面─色調與飽和度,分別用Cr和Cb來表示。其中,Cr反映了RGB輸入信號紅色部分與RGB信號亮度值之間的差別。而Cb反映的是RGB輸入信號藍色部分與RGB信號亮度值之同的差別。
三、YUV和RGB互相轉換的公式以下(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
4、HSV顏色空間
一、HSV是一種將RGB色彩空間中的點在倒圓錐體中的表示方法。HSV即色相(Hue)、飽和度(Saturation)、明度(Value),又稱HSB(B即Brightness)。色相是色彩的基本屬性,就是日常說的顏色的名稱,如紅色、黃色等。飽和度(S)是指色彩的純度,越高色彩越純,低則逐漸變灰,取0-100%的數值。明度(V),取0-max(計算機中HSV取值範圍和存儲的長度有關)。HSV顏色空間能夠用一個圓錐空間模型來描述。圓錐的頂點處,V=0,H和S無定義,表明黑色。圓錐的頂面中心處V=max,S=0,H無定義,表明白色。
二、RGB顏色空間中,三種顏色份量的取值與所生成的顏色之間的聯繫並不直觀。而HSV顏色空間,更相似於人類感受顏色的方式,封裝了關於顏色的信息:「這是什麼顏色?深淺如何?明暗如何?」
三、RGB和HSV轉換
(1)從RGB到HSV
設max等於r、g和b中的最大者,min爲最小者。對應的HSV空間中的(h,s,v)值爲:
h在0到360°之間,s在0到100%之間,v在0到max之間。
(2)從HSV到RGB