RGB与YUV之间的转换

本文参考下面两处资料整理而成:

http://blog.sina.com.cn/s/blog_5713096b0100059i.html

http://www.fourcc.org/fccyvrgb.php

--------------------------------------------------------------------------------------------------------------------------------

先区分一下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 颜色空间的偏移版本

应用:数字视频,ITU-R BT.601建议

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.392*(Cb'-128) - 0.813*(Cr'-128)

B' = 1.164*(Y'-16) + 2.017*(Cb'-128)

PS: 上面各个符号都带了一撇,表示该符号在原值基础上进行了伽马校正,伽马校正有助于弥补在抗锯齿的过程中,线性分配伽马值所带来的细节损失,使图像细节更加丰富。在没有采用伽马校正的情况下,暗部细节不容易显现出来,而采用了这一图像增强技术以后,图像的层次更加明晰了。

所以说H264里面的YUV应属于YCbCr

实际计算应以下面的关系为准:

RGB to YUV Conversion


Y  =          (0.257 * R) + (0.504 * G) + (0.098 * B) + 16

Cb = U = -(0.148 * R) - (0.291 * G) + (0.439 * B) + 128

Cr = V =   (0.439 * R) - (0.368 * G)  - (0.071 * B) + 128

 

YUV to RGB Conversion


R = 1.164*(Y - 16)                            + 1.596*(V - 128)

G = 1.164*(Y - 16) - 0.391*(U - 128) - 0.813*(V - 128)

B = 1.164*(Y - 16) + 2.018*(U - 128)

 

在matlab里输入

>> A=[0.257,0.504,0.098;-0.148,-0.291,0.439;0.439,-0.368,-0.071]

A =

 

    0.2570    0.5040    0.0980
   -0.1480   -0.2910    0.4390
    0.4390   -0.3680   -0.0710

 

>> A^-1

 

ans =

 

    1.1641   -0.0018    1.5958
    1.1641   -0.3914   -0.8135
    1.1641    2.0178   -0.0012

这是矩阵逆变换后的值,舍去比较小的系数,得到上面的关系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值