第一个公式是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. 多git项目中账户的管理

    每个项目配置用户名: git config user.name "your_name" git config user.email "your_email" 如 ...

  2. Django框架下数据存储实现时间戳格式存储到数据库2019-12-11 17:53:13

    2019-12-11 17:53:13 models.py class DomainDir(models.Model): date = models.DateTimeField() views.py ...

  3. BZOJ 5494: [2019省队联测]春节十二响 (左偏树 可并堆)

    题意 略 分析 稍微yy一下可以感觉就是一个不同子树合并堆,然后考场上写了一发左偏树,以为100分美滋滋.然而发现自己傻逼了,两个堆一一对应合并后剩下的一坨直接一次合并进去就行了.然鹅我这个sb把所有 ...

  4. HR#4 题解

    既然考这么差就来写题啦OTZ T1 猜结论?猜nm! 一直到考试结束都没猜出来=.=我就好奇别人如何猜出来的 我们来说DP(from ZBK) 设\(dp[i][j]\)表示胜or负 那我们来看一下代 ...

  5. 【题解】在你窗外闪耀的星星-C++

    题目题目描述飞逝的的时光不会模糊我对你的记忆.难以相信从我第一次见到你以来已经过去了3年.我仍然还生动地记得,3年前,在美丽的集美中学,从我看到你微笑着走出教室,你将头向后仰,柔和的晚霞照耀着你玫瑰色 ...

  6. vs2015 调试 无法启动程序

    应用程序输出在这个目录 E:\learn\3dlesson\lesson1_createwindow\build\Debug 项目属性 解决方案: 把项目设为启动项目.

  7. electron-vue搭建项目

    原文链接 使用pdf.js插件与LODOP控件实现前端浏览器静默打印PDF文件 lodop官网地址:http://www.lodop.net/download.html 点击下载,文件里有使用手册 e ...

  8. python 多线程_thread

    import _thread import time def print_time(threadName, delay, iterations): start = int(time.time()) , ...

  9. win10 下载安装tasm

    下载tasm http://www.technorange.com/wp-content/uploads/Tasm%201.4%20Windows%207-Windows%208%2064%20bit ...

  10. 测试puppeteer模拟度检测

    var puppeteer = require('puppeteer'); const devices = require('puppeteer/DeviceDescriptors'); const ...