YUV 與RGB之間的變換

2021-04-30 07:47:01 字數 1287 閱讀 3054

大多數的計算機圖形工作者熟悉 rgb,而大多數的具有影象背景的則熟悉 yuv。rgb可以認為是三個分別表示紅,綠,藍顏色的灰度影象。把它們組合在一起就可以產生各種各樣的顏色。

yuv 使用rgb的資訊,但它從全彩色影象中產生乙個黑白影象,然後提取出三個主要的顏色變成兩個額外的訊號來描述顏色。把這三個訊號組合回來就可以產生乙個全彩色影象。

那麼 yuv 是怎麼產生的呢?當時,工程師們需要找到一種辦法來使彩色電視廣播可以相容黑白電視。他們使用的彩色訊號也需要保全頻寬因為 rgb 資料不能適合訊號空間的限制。通過合併顏色資訊,yuv 使用比 rgb 更小的頻寬,並且與黑白電視相容。

yuv 使用紅,綠,藍的點陣組合來減少訊號中的資訊量。y 通道描述 luma 訊號,它與亮度訊號有一點點不同,值的範圍介於亮和暗之間。 luma 是黑白電視可以看到的訊號。u (cb) 和 v (cr) 通道從紅 (u) 和藍 (v) 中提取亮度值來減少顏色資訊量。這些值可以從新組合來決定紅,綠和藍的混合訊號。

luma = 30% 紅 + 59% 綠 + 11% 藍

下面簡介一下yuv和rgb的轉換。

vga**過設定紅,藍,綠三色的強度來顯示顏色。這三種顏色形成笛卡爾座標系統的軸線。任何一種顏色都是這個顏色空間的一點。你不需要使用這個座標來定義顏色空間的一點。乙個灰度影象只使用顏色空間中那些有著相同紅,藍,綠強度的點。

我們可以作乙個座標,其中紅,藍,綠是相等的。這個座標叫做亮度座標。我們還可以通過從亮度中提取紅和藍部份作兩個新的座標。新的座標是紅和藍的色度值,用於新增顏色到影象中。亮度座標標識為 y,藍的色度座標標識為 u,紅的色度座標標識為 v。我們建立的這三個新座標形成了jpeg影象中使用的三個部份。以下的公式用於在這兩個座標系統之間互相轉換。

y=0.299r+0.587g+0.114b

u=-0.1687r-0.3313g+0.5b+128

v=0.5r-0.4187g-0.0813b+128

r=y+1.402 (v-128)g

=y-0.34414 (u-128)-0.71414(v-128)b

=y+1.772(u-128)

需要注意的是我們只使用rgb顏色空間中三個座標都為正的象限。當我們從yuv轉換到rgb時,我們必須確保座標不是負數而且它們沒有超過允許的最大值。那麼為什麼我們要使用yuv顏色空間呢?那時因為人的眼睛對亮度的敏感高於對色度的敏感。通常 jpeg 在進行其它任何壓縮前會丟掉 3/4 的色度資訊。這可以減少影象所要儲存資訊的1/2。如果三個部份全部儲存的話,4 pixels就需要3 x 4 = 12個值。如果兩個部份的 3/4 的資訊可以丟掉不要的話,我們就只需要 1 x 4 + 2 x 1 = 6 個值。

YUV 與RGB之間的變換

大多數的計算機圖形工作者熟悉 rgb,而大多數的具有影象背景的則熟悉 yuv。rgb可以認為是三個分別表示紅,綠,藍顏色的灰度影象。把它們組合在一起就可以產生各種各樣的顏色。yuv 使用rgb的資訊,但它從全彩色影象中產生乙個黑白影象,然後提取出三個主要的顏色變成兩個額外的訊號來描述顏色。把這三個訊...

RGB模型與YUV模型

來了解以下rgb與yuv 我們知道物理三基色分別是紅 red 綠 green 藍 blue 現代的顯示器技術就是通過組合不同強度的紅綠藍三原色,來達成幾乎任何一種可見光的顏色。在影象儲存中,通過記錄每個畫素的紅綠藍強度,來記錄像象的方法,稱為rgb模型 rgb model 常見的格式中,png和bm...

RGB與YUV格式 四

一 rgb rgb24一幀的大小size width heigth 3 byte,rgb32的size width heigth 4byte.1.rgb為紅綠藍三原色 yuv,rgb是色彩空間模型,而bmp,png,jpeg,gif是影象的檔案儲存格式。影象的每個畫素的三個分量為r g b,每個顏色...