RGB、YUV和HSV顏色空間模型


一、概述

顏色通常用三個獨立的屬性來描述,三個獨立變量綜合作用,自然就構成一個空間坐標,這就是顏色空間。但被描述的顏色對象本身是客觀的,不同顏色空間只是從不同的角度去衡量同一個對象。顏色空間按照基本機構可以分為兩大類:基色顏色空間和色、亮分離顏色空間。前者典型的是RGB,后者包括YUV和HSV等等。

二、RGB顏色空間

1、計算機色彩顯示器和彩色電視機顯示色彩的原理一樣,都是采用R、G、B相加混色的原理,通過發射出三種不同強度的電子束,使屏幕內側覆蓋的紅、綠、藍磷光材料發光而產生色彩。這種色彩的表示方法稱為RGB色彩空間表示。

2、在RGB顏色空間中,任意色光F都可以用R、G、B三色不同分量的相加混合而成:F=r[R]+r[G]+r[B]。RGB色彩空間還可以用一個三維的立方體來描述。當三基色分量都為0(最弱)時混合為黑色光;當三基色都為k(最大,值由存儲空間決定)時混合為白色光。

3、RGB色彩空間根據每個分量在計算機中占用的存儲字節數分為如下幾種類型:

(1)RGB555

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通道或者不用。

4、RGB色彩空間采用物理三基色表示,因而物理意義很清楚,適合彩色顯象管工作。然而這一體制並不適應人的視覺特點。因而,產生了其它不同的色彩空間表示法。

三、YUV顏色空間

1、YUV(亦稱YCrCb)是被歐洲電視系統所采用的一種顏色編碼方法。在現代彩色電視系統中,通常采用三管彩色攝像機或彩色CCD攝影機進行取像,然后把取得的彩色圖像信號經分色、分別放大校正后得到RGB,再經過矩陣變換電路得到亮度信號Y和兩個色差信號R-Y(即U)、B-Y(即V),最后發送端將亮度和兩個色差總共三個信號分別進行編碼,用同一信道發送出去。這種色彩的表示方法就是所謂的YUV色彩空間表示。采用YUV色彩空間的重要性是它的亮度信號Y和色度信號U、V是分離的。如果只有Y信號分量而沒有U、V信號分量,那么這樣表示的圖像就是黑白灰度圖像。彩色電視采用YUV空間正是為了用亮度信號Y解決彩色電視機與黑白電視機的兼容問題,使黑白電視機也能接收彩色電視信號。

2、YUV主要用於優化彩色視頻信號的傳輸,使其向后相容老式黑白電視。與RGB視頻信號傳輸相比,它最大的優點在於只需占用極少的頻寬(RGB要求三個獨立的視頻信號同時傳輸)。其中“Y”表示明亮度(Luminance或Luma),也就是灰階值;而“U”和“V” 表示的則是色度(Chrominance或Chroma),作用是描述影像色彩及飽和度,用於指定像素的顏色。“亮度”是透過RGB輸入信號來建立的,方法是將RGB信號的特定部分疊加到一起。“色度”則定義了顏色的兩個方面─色調與飽和度,分別用Cr和Cb來表示。其中,Cr反映了RGB輸入信號紅色部分與RGB信號亮度值之間的差異。而Cb反映的是RGB輸入信號藍色部分與RGB信號亮度值之同的差異。

3、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

四、HSV顏色空間

1、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無定義,代表白色。

2、RGB顏色空間中,三種顏色分量的取值與所生成的顏色之間的聯系並不直觀。而HSV顏色空間,更類似於人類感覺顏色的方式,封裝了關於顏色的信息:“這是什么顏色?深淺如何?明暗如何?”

3、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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM