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).现代的显示器技术就是通过组合不同强度的红绿蓝三原色,来达成几乎任何一种可见光的颜色. ...
随机推荐
- windows 端口转发 netsh
原文地址 listenaddress # 本地监听的ip listenport # 本地监听的端口 connectaddress # 转发请求接收的主机ip connectport # 转发请求接收的 ...
- border-style
border-style 语法: border-style:<line-style>{1,4} <line-style> = none | hidden | dotted | ...
- Greenplum 的发展历史
一.Greenplum的发展历史 Greenplum的发展可以分为下面6个阶段: 图 1 Greenplum时间线 Postgres关系型数据库.Postgres是UC Berkeley开发的关系 ...
- MySQL 5.6 中一个重要的优化——Index Condition Pushdown,究竟push down了什么
1 问题描述 一条SQL,在数据库中是如何执行的呢?相信很多人都会对这个问题比较感兴趣.当然,要完整描述一条SQL在数据库中的生命周期,这是一个非常巨大的问题,涵盖了SQL的词法解析.语 ...
- chrome扩展开发实战入门之二-自动搜索
目标:产生随机数,用于百度搜索:像看电视一样观看搜索结果 参考上一篇,新建目录hellocrx,其中三个文件:manifest.json content_script.js 和jquery-3.4. ...
- MySQL数据分析(7)-SQL的两大学习框架
大家好,我是jacky,很高兴继续跟大家分享<MySQL数据分析实战>课程,前面的课程基本上我把MySQL的原理都做了一定的介绍,有好多朋友说学习MySQL是没有逻辑的,其实jacky是非 ...
- 关于Sign in with Apple 后台验证的一些记录
2019年10月9号 IOS端新增Sign in with Apple IOS真是世界上最垃圾的语言,没有之一,苹果是世界上最垃圾的公司,没有之一 关于Sign in with Apple 苹果官方 ...
- 工作流调度系统Azkaban的简介和使用
1 概述 1.1 为什么需要工作流调度系统 l 一个完整的数据分析系统通常都是由大量任务单元组成: shell脚本程序,java程序,mapreduce程序.hive脚本等 l 各任务单元之间存在时间 ...
- 清空echarts的option
将相应的echarts的option治为空 $("#tt5sbmc").html("");
- legend3---lavarel常用操作代码2
legend3---lavarel常用操作代码2 一.总结 一句话总结: 对于王思cong被执法人的感悟:失意时 莫心伤,得意时 莫膨胀 1.lavarel自动事务? DB::transaction方 ...