第一个公式是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. 快速搭建FTP服务器

    快速搭建一个本地的FTP服务器  如果需要开发FTP文件上传下载功能,那么需要在本机上搭建一个本地FTP服务器,方便调试.第一步:配置IIS Web服务器1.1 控制面板中找到“程序”并打开 1.2 ...

  2. 收藏!了解UART总线工作原理看这一篇就够了!

    原文:玩转单片机 2019-08-24 16:50:29 越学到后面,基础知识更加不能忘记,温故而知新~~ 还记得当年的打印机,鼠标和调制解调器吗?他们都有巨大笨重的连接器和粗电缆,并且必须拧到你的电 ...

  3. .Net Core:Middleware自定义中间件

    新建standard类库项目,添加引用包 Microsoft.AspNetCore 1.扩展IApplicationBuilder using Microsoft.AspNetCore.Builder ...

  4. Activiti服务类- IdentityService服务类

    转自:https://www.cnblogs.com/liuqing576598117/p/9815013.html 一.内置用户组(角色)设计表概念 用户和组(或者叫做角色),多对多关联,通过关联表 ...

  5. prometheus简单监控Linux,mysql,nginx

    prometheus安装 下载安装 #官网下载 解压即可使用 https://prometheus.io/download/ #docker 方式安装 sudo docker run -n prome ...

  6. 解决Virtualbox的根分区容量不够用问题

    现在Virtualbox新建一块磁盘.容量一定要比原来的大.然后执行克隆命令. 把原来的磁盘内容克隆到新磁盘上.然后重新启动电脑. 运行相关扩容命令即可. #克隆磁盘 cd C:\Program Fi ...

  7. nginx下载 并将vue项目部署上去

    这是一个比较全的nginx配置说明:新手可以先忽略,直接往下看:https://www.cnblogs.com/findbetterme/p/11289273.html nginx官网下载地址:htt ...

  8. MySQL数据分析-(2)数据库的底层逻辑

    (一) 数据库存在的逻辑 1.案例开篇-大部分公司对于数据和数字的管理都是低效率的 我们要学习数据库,就必须要搞清楚数据库是在什么样的情景下发明并流行的?学习新知识就要搞清楚每个知识点的来龙去脉,这样 ...

  9. Redis集群都有哪些模式

    前言: 一,为什么要使用redis 1,解决应用服务器的cpu和内存压力 2,减少io的读操作,减轻io的压力 3,关系型数据库扩展性不强,难以改变表的结构 二,优点 1,nosql数据库没有关联关系 ...

  10. js循环数组(总结)

    js循环数组(总结) 一.总结 一句话总结: for循环:for(j = 0,len=arr.length; j < len; j++) {} foreach循环:arr.forEach((it ...