关于YUV转RGB的三个公式,到底应该用哪一个??

大大的道道的 2017-01-12 05:01:43
网上搜了着三个公式,不知道用哪一个 已经完全懵逼了。。

公式1:
* R' = Y' + 1.13983*V'
* G' = Y' - 0.39465*U' - 0.58060*V'
* B' = Y' + 2.03211*U'

公式2:

B = 1.164(Y - 16) + 2.018(U - 128)
G = 1.164(Y - 16) - 0.813(V - 128) - 0.391(U - 128)
R = 1.164(Y - 16) + 1.596(V - 128)
链接:https://www.zhihu.com/question/20656646/answer/15779858

公式3:
R= yData[i] + 1.370705 * (vData[j] - 128); // r
G = yData[i] - 0.698001 * (uData[j] - 128) - 0.703125 * (vData[j] - 128); // g
B = yData[i] + 1.732446 * (uData[j] - 128); // b


...全文
1043 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zerolity 2018-10-18
  • 打赏
  • 举报
回复
请问下你是怎么查到的你的yuv基于BT.601-6,full-range
大大的道道的 2017-01-19
  • 打赏
  • 举报
回复
引用 2 楼 FancyMouse 的回复:
8位yuv有bt601 bt709两个标准,每个标准都有tv range和full range一共4个组合。也就是说会有4个公式。按需求对应用。
多谢。我用的bt-601 基于BT.601-6,full-range R = Y + 1.4075 * (V-128); G = Y - 0.3455 * (U-128) - 0.7169*(V-128); B = Y + 1.779 * (U-128); Y = 0.299*R + 0.587*G + 0.114*B; U = (B-Y)/1.772; V = (R-Y)/1.402; 或写为: Y = 0.299*R + 0.587*G + 0.114*B; U = -0.169*R - 0.331*G + 0.5 *B + 128; V = 0.5 *R - 0.419*G + 0.081*B + 128;
赵4老师 2017-01-13
  • 打赏
  • 举报
回复
引用 2 楼 FancyMouse 的回复:
8位yuv有bt601 bt709两个标准,每个标准都有tv range和full range一共4个组合。也就是说会有4个公式。按需求对应用。
FancyMouse 2017-01-13
  • 打赏
  • 举报
回复
8位yuv有bt601 bt709两个标准,每个标准都有tv range和full range一共4个组合。也就是说会有4个公式。按需求对应用。

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧