YUV格式到RGB格式的轉換

2021-06-19 15:41:12 字數 1206 閱讀 7839

yuyv格式到rgb格式的轉換: 

yuyv格式如下: 

y0u0y1v0 y2u1y3v1.......... 

說明:乙個y代表乙個畫素,而乙個y和uv組合起來構成乙個畫素,所以第0個畫素y0和第乙個畫素y1都是共用第0個畫素的u0和v0。而每個分量y,u,v都是占用乙個位元組的儲存空間。所以y0u0y1v0相當於兩個畫素,占用了4個位元組的儲存空間,平均乙個畫素占用兩個位元組。 

rgb格式: 

r0g0b0 r1g1b1......... 

說明:乙個畫素由三個分量構成,即乙個畫素占用三個位元組。 

先區分一下yuv和ycbcr

yuv色彩模型**於rgb模型,

該模型的特點是將亮度和色度分離開,從而適合於影象處理領域。

應用:模擬領域

y'= 0.299*r' + 0.587*g' + 0.114*b'

u'= -0.147*r' - 0.289*g' + 0.436*b' = 0.492*(b'-y')

v'= 0.615*r' - 0.515*g' - 0.100*b' = 0.877*(r'-y')

r' = y' + 1.140*v'

g' = y' - 0.394*u' - 0.581*v'

b' = y' + 2.032*u'

ycbcr模型**於yuv模型。ycbcr是yuv 顏色空間的偏移版本.

y』 = 0.257*r' + 0.504*g' + 0.098*b' + 16

cb' = -0.148*r' - 0.291*g' + 0.439*b' + 128

cr' = 0.439*r' - 0.368*g' - 0.071*b' + 128

r' = 1.164*(y』-16) + 1.596*(cr'-128)

g' = 1.164*(y』-16) - 0.813*(cr'-128) -0.392*(cb'-128)

b' = 1.164*(y』-16) + 2.017*(cb'-128)

ps: 上面各個符號都帶了一撇,表示該符號在原值基礎上進行了伽馬校正,伽馬校正有助於彌補在抗鋸齒的過程中,線性分配伽馬值所帶來的細節損失,使影象細節更加豐富。在沒有採用伽馬校正的情況下,暗部細節不容易顯現出來,而採用了這一影象增強技術以後,影象的層次更加明晰了。

所以說h264裡面的yuv應屬於ycbcr,也可以點獲得其他一些資訊.

YUYV格式到RGB格式的轉換

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

YUV 格式與 RGB 格式的相互轉換公式

cr vcb u 0.257r 0.504g 0.098b 160.439r 0.368g 0.071b 128 0.148r 0.291g 0.439b 128y 0.257r 0.504g 0.098b 16cr v 0.439r 0.368g 0.071b 128cb u 0.148r 0.2...

YUV格式轉換為RGB(基於opencv)

opencv自帶cvcvtcolor,但是這種方法有bug,得到的會泛白。第二種方法是公式法。法一 opencv自帶cvcvtcolor void filewriteframes readme.close cvreleaseimage uuimg cvreleaseimage vvimg cvrel...