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...