RGB和YUV的區別和轉換

2021-09-30 10:51:17 字數 1435 閱讀 5363

rgb和yuv都是色彩空間,用於表示顏色,兩者可以相互轉化.至於電視採用yuv分量形式是由itu(國際電信聯盟)規定的,因為其能減少資料儲存空間和資料傳輸頻寬,同時又能非常方便的相容黑白電視! 

yuv是被歐洲電視系統所採用的一種顏色編碼方法(屬於pal),是pal和secam模擬彩色電視制式採用的顏色空間。其中「y」表示明亮度(luminance或luma),也就是灰階值;而「u」和「v」 表示的則是色度(chrominance或chroma),作用是描述影像色彩及飽和度,用於指定畫素的顏色。「亮度」是透過rgb輸入訊號來建立的,方法是將rgb訊號的特定部分疊加到一起。「色度」則定義了顏色的兩個方面─色調與飽和度,分別用cr和cb來表示。其中,cr反映了rgb輸入訊號紅色部分與rgb訊號亮度值之間的差異。而cb反映的是rgb輸入訊號藍色部分與rgb訊號亮度值之同的差異。  採用yuv色彩空間的重要性是它的亮度訊號y和色度訊號u、v是分離的。如果只有y訊號分量而沒有u、v分量,那麼這樣表示的影象就是黑白灰度影象。在現代彩色電視系統中,通常採用三管彩色攝影機或彩色ccd攝影機進行取像,然後把取得的彩色影象訊號經分色、分別放大校正後得到rgb,再經過矩陣變換電路得到亮度訊號y和兩個色差訊號r-y(即u)、b-y(即v),最後傳送端將亮度和色差三個訊號分別進行編碼,用同一通道傳送出去。這種色彩的表示方法就是所謂的yuv色彩空間表示。採用yuv色彩空間的重要性是它的亮度訊號y和色度訊號u、v是分離的。如果只有 y訊號分量而沒有u、v訊號分量,那麼這樣表示的影象就是黑白灰度影象。彩色電視採用yuv空間正是為了用亮度訊號y解決彩色電視機與黑白電視機的相容問題,使黑白電視機也能接收彩色電視頻號。

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

即rgb轉yuv的轉換是這樣的:

[y] = [ 0.299  0.587  0.114]   [r]

[u] = [-0.148 -0.289  0.437] * [g]

[v] = [ 0.615 -0.515 -0.100]   [b]

yuv轉rgb的轉換是這樣的:

[r] = [1  0      1.140]   [y]

[g] = [1 -0.395 -0.581] * [u]

[b] = [1  2.032  0    ]   [v]

在directshow中,常見的rgb格式有rgb1、rgb4、rgb8、rgb565、rgb555、rgb24、rgb32、argb32等;常見的yuv格式有yuy2、yuyv、yvyu、uyvy、ayuv、y41p、y411、y211、if09、iyuv、yv12、yvu9、yuv411、yuv420等。

YUV和RGB的互轉

yuv和rgb的轉換 模擬訊號 rgb轉yuv y 0.299r 0.587g 0.114b u 0.493 b y 0.147r 0.289g 0.436b v 0.877 r y 0.615r 0.515g 0.100b yuv轉rgb r y 1.14v g y 0.394u 0.581v b...

常見的RGB和YUV格式分析

rgb1 rgb4 rgb8都是調色盤型別的rgb格式,在描述這些 型別的格式細節時,通常會在bitmapinfoheader資料結構後面跟著乙個調色盤 定義一系列顏色 它們的影象資料並不是真正的顏色值,而是當前畫素顏色值在調色盤中的索引。以rgb1 2色位圖 為例,比如它的調色盤中定義的兩種顏色值...

YUV格式到RGB格式的轉換

yuyv格式到rgb格式的轉換 yuyv格式如下 y0u0y1v0 y2u1y3v1.說明 乙個y代表乙個畫素,而乙個y和uv組合起來構成乙個畫素,所以第0個畫素y0和第乙個畫素y1都是共用第0個畫素的u0和v0。而每個分量y,u,v都是占用乙個位元組的儲存空間。所以y0u0y1v0相當於兩個畫素,...