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

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

黑色: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

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAQCAIAAACOWFiFAAAAHElEQVQ4jWP4H+pLI8QwavSo0aNGjxo9ajT1EABKzw4OMMhUQQAAAABJRU5ErkJggg==" alt="" />:  Y=132,U=99, V=203

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAQCAIAAABlb+OGAAAAHElEQVQ4jWNwi/hLC8Qwau6ouaPmjpo7ai5eBADFwekPB2sHcwAAAABJRU5ErkJggg==" alt="" />:Y=103,U=203,V=108

2.

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

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

 #include <iostream>
#include <stdio.h>
using namespace std; int main()
{
int R,G,B;
int Y,U,V;
cout << "Please input the R,G,B:(eg:255 0 0)" << endl;
cin>>R>>G>>B;
Y = 0.257 * R + 0.504 * G + 0.098 * B + +0.5;
U = -0.148 * R - 0.291 * G + 0.439 * B + +0.5;
V = 0.439 * R - 0.368 * G - 0.071 * B + +0.5;//加上0.5是为了四舍五入
cout<<"R,G,B: "<<R<<" "<<G<<" "<<B<<endl;
cout<<"Y,U,V: "<<Y<<" "<<U<<" "<<V<<endl;
getchar();  getchar();    return ;
}

aaarticlea/png;base64,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" alt="" />


参考网址:

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

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

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

另附UYVY数据转换成OpenCV中的BGR代码一段:)

这里的尺寸是720x576

void YUV2BGR(unsigned char *srcData, unsigned char *destData)
{
int R,G,B;
int Y,U,V; for (int height=; height<; height++)
{
for (int width=; width<; width++)
{
Y = srcData[height** + width* + ];
U = (width%==) ? srcData[height** + width* + ] : srcData[height** + width* + ];
V = (width%==) ? srcData[height** + width* + ] : srcData[height** + width* - ]; B = ( * (Y - ) + * (U - ))/;
G = ( * (Y - ) - * (U - ) - * (V - ))/;
R = ( * (Y - ) + * (V - ))/; if (R>) R=; if(R<) R=;
if (G>) G=; if(G<) G=;
if (B>) B=; if(B<) B=; destData[height * * + width* + ] = (unsigned char)B;
destData[height * * + width* + ] = (unsigned char)G;
destData[height * * + width* + ] = (unsigned char)R;
}
}
}

YUV RGB 格式转换的更多相关文章

  1. 【图像处理与医学图像处理】YUV与RGB格式转换速度几种方法对比

    [视频处理]YUV与RGB格式转换 YUV格式具有亮度信息和色彩信息分离的特点,但大多数图像处理操作都是基于RGB格式. 因此当要对图像进行后期处理显示时,需要把YUV格式转换成RGB格式. RGB与 ...

  2. 【DSP开发】【VS开发】YUV与RGB格式转换

    [视频处理]YUV与RGB格式转换 YUV格式具有亮度信息和色彩信息分离的特点,但大多数图像处理操作都是基于RGB格式. 因此当要对图像进行后期处理显示时,需要把YUV格式转换成RGB格式. RGB与 ...

  3. 【视频处理】YUV与RGB格式转换

    YUV格式具有亮度信息和色彩信息分离的特点,但大多数图像处理操作都是基于RGB格式. 因此当要对图像进行后期处理显示时,需要把YUV格式转换成RGB格式. RGB与YUV的变换公式如下: YUV(25 ...

  4. YUV / RGB 格式及快速转换算法

    1 前言 自然界的颜色千变万化,为了给颜色一个量化的衡量标准,就需要建立色彩空间模型来描述各种各样的颜色,由于人对色彩的感知是一个复杂的生理和心理联合作用 的过程,所以在不同的应用领域中为了更好更准确 ...

  5. YUV与RGB格式转换

    YUV格式具有亮度信息和色彩信息分离的特点,但大多数图像处理操作都是基于RGB格式. 因此当要对图像进行后期处理显示时,需要把YUV格式转换成RGB格式. RGB与YUV的变换公式如下: YUV(25 ...

  6. rgb格式颜色与#000000格式颜色的转换

    首先,#000000格式的颜色被成为十六进制颜色码: 6位数分为三组,每两位数一组,依次是红.黄.蓝颜色的强度: 而与此对应的,rgb(39,137,202)依次是十进制的红黄蓝颜色: 因此将rgb格 ...

  7. Qt QImag图像保存、格式转换

    图像保存bool QImage::save(const QString &fileName, const char *format = Q_NULLPTR, int quality = -1) ...

  8. Android 音视频编解码——RGB与YUV格式转换

    一.RGB模型与YUV模型 1.RGB模型 我们知道物理三基色分别是红(Red).绿(Green).蓝(Blue).现代的显示器技术就是通过组合不同强度的红绿蓝三原色,来达成几乎任何一种可见光的颜色. ...

  9. 音视频编解码——RGB与YUV格式转换

    一.RGB模型与YUV模型 1.RGB模型 我们知道物理三基色分别是红(Red).绿(Green).蓝(Blue).现代的显示器技术就是通过组合不同强度的红绿蓝三原色,来达成几乎任何一种可见光的颜色. ...

随机推荐

  1. idea 插件的使用

    idea 插件的使用 进阶篇(个人收集使用中的) 恭喜你,如果你已经看到这篇文章,证明在idear使用上已经初有小成!那么就要向着大神进发了! 下边就是大神之路! 插件的设置 在 IntelliJ I ...

  2. Luogu P3690【模板】Link Cut Tree (LCT板题)

    省选前刷道LCT板题(话说之前没做这道题-) CODE #include<bits/stdc++.h> using namespace std; inline void read(int ...

  3. pyinstaller打包程序包含openpyxl库问题解决

    带有openpyxl库时,直接打包,总会失败: 原因:看本地文件...Anaconda3\Lib\site-packages\PyInstaller\hooks\hook-openpyxl.py 发现 ...

  4. C/C++应用--Window下获取硬件信息(CPU, 硬盘,网卡等)

    一.头文件如下: #include <Windows.h> #include <string> #include <iostream> #include <w ...

  5. Spring Boot and Rabbit MQ 异常的时候消息的状态

    我们有一个处理消息的方法. 在处理消息的时候出现了异常,那出现异常后这个消息会怎么处理呢. 根据我们的实际情况的观察,如果出现了异常. 但是你没有捕获或者处理异常,这个消息会一直存在,并且你的系统会持 ...

  6. 【概率论】4-2:期望的性质(Properties of Expectation)

    title: [概率论]4-2:期望的性质(Properties of Expectation) categories: - Mathematic - Probability keywords: - ...

  7. pause函数

    pause函数 调用该函数可以造成进程主动挂起,等待信号唤醒.调用该系统调用的进程将处于阻塞状态(主动放弃cpu) 直到有信号递达将其唤醒. int pause(void);     返回值:-1 并 ...

  8. windows游戏编程X86 (内存)寄存器相关的基本概念

    本系列文章由jadeshu编写,转载请注明出处.http://blog.csdn.net/jadeshu/article/details/22446971 作者:jadeshu   邮箱: jades ...

  9. servlet容器:jetty,Tomcat,JBoss

    一.几款servlet容器对比:jetty,Tomcat,JBoss 二.JBOSS相关问题解决 1.JBOSS下载安装 2.处理jboss-as-7.1.1.Final与jdk1.8及1.8以上版本 ...

  10. elasticsearch java动态设置mapping并指定分词器

    //创建索引 client.admin().indices().prepareCreate("twitter").execute().actionGet(); //配置mappin ...