RGB与YUV转换及代码

RGB与YUV转换及代码

1. 转换公式

  • YUV(256 级别) 可以从8位 RGB 直接计算:
    Y = 0.299 R + 0.587 G + 0.114 B
    U = - 0.1687 R - 0.3313 G + 0.5 B + 128
    V = 0.5 R - 0.4187 G - 0.0813 B + 128
  • 反过来,RGB 也可以直接从YUV (256级别) 计算:
    R = Y + 1.402 (Cr-128)
    G = Y - 0.34414 (Cb-128) - 0.71414 (Cr-128)
    B = Y + 1.772 (Cb-128)

2.Python code

import argparse
parser = argparse.ArgumentParser(description='RGB2YUV')
parser.add_argument('--R', type=int, default=0)
parser.add_argument('--G', type=int, default=0)
parser.add_argument('--B', type=int, default=0)
args = parser.parse_args()
R = args.R
G = args.G
B = args.B

print('%d,%d,%d'%(R,G,B))

Y = round(0.299 * R + 0.587 * G + 0.114 * B)
U = round(-0.1687 * R - 0.3313 * G + 0.5 * B + 128)
V = round(0.5 * R - 0.4187 * G - 0.0813 * B + 128)
print('{0x%x, 0x%x, 0x%x}'%(Y, U, V))
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值