YUV RGB 格式转换
第一个公式是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 格式转换的更多相关文章
- 【图像处理与医学图像处理】YUV与RGB格式转换速度几种方法对比
[视频处理]YUV与RGB格式转换 YUV格式具有亮度信息和色彩信息分离的特点,但大多数图像处理操作都是基于RGB格式. 因此当要对图像进行后期处理显示时,需要把YUV格式转换成RGB格式. RGB与 ...
- 【DSP开发】【VS开发】YUV与RGB格式转换
[视频处理]YUV与RGB格式转换 YUV格式具有亮度信息和色彩信息分离的特点,但大多数图像处理操作都是基于RGB格式. 因此当要对图像进行后期处理显示时,需要把YUV格式转换成RGB格式. RGB与 ...
- 【视频处理】YUV与RGB格式转换
YUV格式具有亮度信息和色彩信息分离的特点,但大多数图像处理操作都是基于RGB格式. 因此当要对图像进行后期处理显示时,需要把YUV格式转换成RGB格式. RGB与YUV的变换公式如下: YUV(25 ...
- YUV / RGB 格式及快速转换算法
1 前言 自然界的颜色千变万化,为了给颜色一个量化的衡量标准,就需要建立色彩空间模型来描述各种各样的颜色,由于人对色彩的感知是一个复杂的生理和心理联合作用 的过程,所以在不同的应用领域中为了更好更准确 ...
- YUV与RGB格式转换
YUV格式具有亮度信息和色彩信息分离的特点,但大多数图像处理操作都是基于RGB格式. 因此当要对图像进行后期处理显示时,需要把YUV格式转换成RGB格式. RGB与YUV的变换公式如下: YUV(25 ...
- rgb格式颜色与#000000格式颜色的转换
首先,#000000格式的颜色被成为十六进制颜色码: 6位数分为三组,每两位数一组,依次是红.黄.蓝颜色的强度: 而与此对应的,rgb(39,137,202)依次是十进制的红黄蓝颜色: 因此将rgb格 ...
- Qt QImag图像保存、格式转换
图像保存bool QImage::save(const QString &fileName, const char *format = Q_NULLPTR, int quality = -1) ...
- Android 音视频编解码——RGB与YUV格式转换
一.RGB模型与YUV模型 1.RGB模型 我们知道物理三基色分别是红(Red).绿(Green).蓝(Blue).现代的显示器技术就是通过组合不同强度的红绿蓝三原色,来达成几乎任何一种可见光的颜色. ...
- 音视频编解码——RGB与YUV格式转换
一.RGB模型与YUV模型 1.RGB模型 我们知道物理三基色分别是红(Red).绿(Green).蓝(Blue).现代的显示器技术就是通过组合不同强度的红绿蓝三原色,来达成几乎任何一种可见光的颜色. ...
随机推荐
- 【vue】vue-cli中 对于public文件夹的处理
pubcli和assets文件夹都是用来存储静态资源的,: [assets文件夹] 通过相对路径被引入,这类引用会被webpack处理: 比如: 会被编译成: 再比如: 会被编译成: [public文 ...
- border-width
border-width 语法: border-width:<line-width>{1,4} <line-width> = <length> | thin | m ...
- codeforces1213F tarjan缩点+拓扑排序
题意 给定两个长度为n的排列p和q,构造一个字符串s满足\(s[p_i]<=s[p_{i+1}]\)和\(s[q_i]<=s[q_{i+1}]\),且满足字符串中不同字符的个数不少于k. ...
- vue中插槽(slot)的使用
刚学vue的时候,曾经学习过slot插槽的使用,但是后面接触的不多,因为之前我还没使用element-ui... 但是使用了element-ui之后,里面的许多组件,有时候会使用插槽,为了巩固一下插槽 ...
- Fiddler 安装使用
Fiddler是一个蛮好用的抓包工具,可以将网络传输发送与接受的数据包进行截获.重发.编辑.转存等操作.也可以用来检测网络安全.反正好处多多,举之不尽呀!当年学习的时候也蛮费劲,一些蛮实用隐藏的小功能 ...
- jenkins之docker安装
此方法安装还存在两个问题1.构建node程序:2.时区问题(在docker run 设置环境变量是否能解决没有试过) 不建议用此方法安装,查看我的其他安装方式 搬运官网步骤,稍微改动. 1.安装doc ...
- gitlab配置邮箱postfix(新用户激活邮件)
亲测可用 https://www.cnblogs.com/yoyoketang/p/10287345.html
- 一句话题解&&总结
CF79D Password: 差分.两点取反,本质是匹配!最短路+状压DP 取反是套路,匹配是发现可以把操作进行目的化和阶段化,从而第二次转化问题. 且匹配不会影响别的位置答案 sequence 计 ...
- Qt之编译MySQL数据库驱动(MSVC)
Qt之编译MySQL数据库驱动(MSVC) (2013-12-13 20:24:46) 转载▼ 标签: qt mysql qmysql qt编译mysql qt之msvc编译mysql 分类: Qt ...
- DNS -- 快速清除DNS缓存
MAC: sudo dscacheutil -flushcache Linux: dnsmasq的是一个轻量级的DNS.TFTP和DHCP服务器.它的目的是给局域网提供配对的DNS和DHCP服务. d ...