码迷,mamicode.com
首页 > 其他好文 > 详细

YUV RGB 格式转换

时间:2014-06-14 13:41:47      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   code   http   color   

第一个公式是RGB转YUV(范围0-255)时用的,第二个公式是用在YUV转换RGB(范围0-255)时用的。
1.  

Y =  0.257 * R + 0.504 * G + 0.098 * B + 16;
U = -0.148 * R - 0.291 * G + 0.439 * B + 128;
V =  0.439 * R - 0.368 * G - 0.071 * B + 128;

黑色:Y=16 ,U= V =128

:Y=82 ,U=90,V=240

绿:Y=145,U=54,V=34

:Y=41 ,U=240,V=110

:Y=210,U=16, V=146

:Y=58,  U=104,V=192

bubuko.com,布布扣:  Y=132,U=99, V=203

bubuko.com,布布扣:Y=103,U=203,V=108

 

2.   

B =  1.164 * (Y - 16) +  2.018 * (U - 128);
G =  1.164 * (Y - 16) -  0.391 * (U - 128) - 0.813 * (V - 128);
R =  1.164 * (Y - 16)                      + 1.596 * (V - 128);

 

 

一个简单的RGB转换YUV的小程序(仅仅是方便计算颜色值)

 1 #include <iostream>
 2 #include <stdio.h>
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     int R,G,B;
 8     int Y,U,V;
 9     cout << "Please input the R,G,B:(eg:255 0 0)" << endl;
10     cin>>R>>G>>B;
11     Y =  0.257 * R + 0.504 * G + 0.098 * B + 16   +0.5;
12     U = -0.148 * R - 0.291 * G + 0.439 * B + 128  +0.5;
13     V =  0.439 * R - 0.368 * G - 0.071 * B + 128  +0.5;//加上0.5是为了四舍五入
14     cout<<"R,G,B: "<<R<<" "<<G<<" "<<B<<endl;
15     cout<<"Y,U,V: "<<Y<<" "<<U<<" "<<V<<endl;
16     getchar();  getchar();    return 0;
17 }

 

 

 

 


 

参考网址:

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

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

http://en.wikipedia.org/wiki/YUV

YUV RGB 格式转换,布布扣,bubuko.com

YUV RGB 格式转换

标签:style   class   blog   code   http   color   

原文地址:http://www.cnblogs.com/sunniflyer/p/myYUV2RGB.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!