视频图像处理基础知识5(RGB与Ycbcr相互转换公式 )【转】
转自:http://blog.csdn.net/Times_poem/article/details/51471438
版权声明:本文为博主原创文章,未经博主允许不得转载。
需求说明:视频处理算法基本知识
第一部分:有参考出处的RGB与Ycbcr相互转换
第二部分:简单直接的RGB与Ycbcr相互转换
第三部分:优化乘法的RGB与Ycbcr相互转换
第一部分
来自:http://blog.chinaunix.NET/uid-215617-id-2212957.html
// |Cb| = |128| + (1/256)*|-37.945 -74.494 112.43| *|G|
// |Cr | |128| |112.439 -94.154 -18.28| |B|
//|R| |298.082 0 408.58 | |Y -16 |
//|G| = (1/256)*|298.082 -100.291 -208.12|* |Cb-128|
//|B| |298.082 516.411 0 | |Cr -128|
|
|
|
|
第二部分
来自:http://blog.csdn.net/a14730497/article/details/17886127
Y:明亮度(Luminance或Luma),也就是灰阶值。“亮度”是透过RGB输入信号来建立的,方法是将RGB信号的特定部分叠加到一起。
Cb:反映的是RGB输入信号蓝色部分与RGB信号亮度值之间的差异。
Cr:反映了RGB输入信号红色部分与RGB信号亮度值之间的差异。
在以下两个公式中RGB和YCbCr各分量的值的范围均为0-255。
RGB转换为YCbCr
Y = 0.257*R+0.564*G+0.098*B+16
Cb = -0.148*R-0.291*G+0.439*B+128
Cr = 0.439*R-0.368*G-0.071*B+128
等效为:
Y = (1/8192)[(135168 + 4129G) + (2015R + 803B)] 其他的Cb ,Cr 类似过程
//-------------------------------------------------------------------------------------------------------------------------------
YCbCr转换为RGB
R = 1.164*(Y-16)+1.596*(Cr-128)
G = 1.164*(Y-16)-0.392*(Cb-128)-0.813*(Cr-128)
B = 1.164*(Y-16)+2.017*(Cb-128)
或者
R = 1.164Y + 1.596Cr - 222.912
G = 1.164Y - 0.391Cb - 0.813Cr + 135.488
B = 1.164Y + 2.018Cb - 276.928
等效为:
R >> 9 = 596Y + 817Cr - 114131
G >> 9 = 596Y - 200Cb - 416Cr + 69370
B >> 9 = 596Y + 1033Cb - 141787
第三部分
来自: http://www.cnblogs.com/qiweiwang/archive/2011/07/07/2099731.html
YCbCr转RGB的公式如下:
R = 1.164(Y-16) + 1.596(Cr-128);
G = 1.164(Y-16) - 0.391(Cb-128) - 0.813(Cr-128);
B = 1.164(Y-16) + 2.018(Cb-128);
其中的系数可以表示成
1.164 = 1 + 1/2^3 + 1/2^5 + 1/2^7;
1.596 = 1 +1/2+ 1/2^4 + 1/2^5;
0.391 = 1/2^2 + 1/2^3 + 1/2^6;
0.813 = 1/2 + 1/2^2 + 1/2^4;
2.018 = 2 + 1/2^6;
故而,上述公式可以转化成没有乘法的公式,大大提高了运算的效率。
整理来自:时间的诗
视频图像处理基础知识5(RGB与Ycbcr相互转换公式 )【转】的更多相关文章
- Matlab图像处理基础知识
Matlab图像处理基础知识 Matlab的图片以矩阵的形式存储,矩阵的行列值为图片的行列的色彩值. 1图像表达方式: 像素索引 图像被视为离散单元.如使用I(2,2)可以获取第二行第二列的像素值 空 ...
- 音视频处理基础知识扫盲:数字视频YUV像素表示法以及视频帧和编解码概念介绍
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt+moviepy音视频剪辑实战 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一. ...
- 图像处理基础知识:EMVA1288标准之“非均匀性”的理解
EMVA1288标准之“非均匀性”的理解 目录 1. 什么是图像的非均匀性?有标准吗? 2. EMVA1288的非均匀性内容. 3. 总结与理解 正文 1. 什么是图像的非均匀性?有标准吗?简单来说, ...
- 打基础丨Python图像处理入门知识详解
摘要:本文讲解图像处理基础知识和OpenCV入门函数. 本文分享自华为云社区<[Python图像处理] 一.图像处理基础知识及OpenCV入门函数>,作者: eastmount. 一.图像 ...
- 使用matlab处理图像的基础知识
MATLAB基本函数一 矩阵运算 1.基本算数运算(加减乘除) + -运算要求矩阵维数相同,例m*n * /运算,例A=B*C,B矩阵是m*n矩阵,B是n*p矩阵,则A是m*p矩阵 A/B相当于A*i ...
- SDL的基础知识以及利用SDL播放视频
原文地址:http://blog.csdn.net/i_scream_/article/details/52714378 此博文相关知识点从雷神的博客以及视频学习,截图也是用了他的课件, 雷神博客地址 ...
- Java-2-学习历程2:基础知识1,2,3文档、完整版视频资源、电子书籍下载
Java学习历程:基础知识1,2,3文档.完整版视频资源.电子书籍 1.基础知识1,2.3可到下面地址下载: http://download.csdn.net/detail/iot_li/886 ...
- 基于MATLAB的RGB转YCBCR色彩空间转换
使用MATLAB进行图片的处理十分方便,看它的名字就知道了,矩阵实验室(matrix laboratory).一副图片的像素数据可以看成是一个二维数组一个大矩阵,MTABLAB就是为矩阵运算而生. M ...
- AI-图像基础知识-01
目前人工智能Artificial Intelligence主要分为两大分支: 计算机视常见:Computer Vision,简称CV CV主要是研究如何让机器看懂世界的一种技术,通过各种光 ...
随机推荐
- Ubuntu 首次给root用户设置密码
用过ubuntu的人都知道,刚安装好root用户是没有密码的,没有密码我们就没法用root用户登录.给root用户设置密码输入命令sudo passwd root,然后系统会让你输入密码,这时输入的密 ...
- Qt 实现在隐藏标题栏情况下,窗口的缩放(未成功)
呃,这是一个悲剧的版本,在这版本中,我按照网上大神的说法,试了一下,但是没有效果,不知道出错在了那里,和昨天一样,也是,没有理想的效果,这里贴上代码,记录一下 资料连接:放评论 需要包含头文件 #in ...
- JS运行在服务器端注意事项
<script runat="server" language="javascript"> </script> 1. ASP利于JS重载 ...
- 山科SDUST OJ Problem J :连分数
Problem J: 连分数 Time Limit: 1 Sec Memory Limit: 64 MBSubmit: 2723 Solved: 801[Submit][Status][Web B ...
- Kafka数据辅助和Failover
数据辅助与Failover CAP理论(它具有一致性.可用性.分区容忍性) CAP理论:分布式系统中,一致性.可用性.分区容忍性最多只可同时满足两个.一般分区容忍性都要求有保障,因此很多时候在可用性与 ...
- 关于全球唯一标识符GUID
在C#中的语法: Console.WriteLine(System.Guid.NewGuid()); Console.ReadKey(); System.Guid.NewGuid().ToString ...
- [洛谷P3567][POI2014]KUR-Couriers
题目大意:给一个数列,每次询问一个区间内有没有一个数出现次数超过一半.有,输出这个数,否则输出$0$ 题解:主席树,查询区间第$\bigg\lfloor\dfrac{len+1}{2}\bigg\rf ...
- [Leetcode] set matrix zeroes 矩阵置零
Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place. click ...
- 洛谷P3763 [Tjoi2017]DNA 【后缀数组】
题目链接 洛谷P3763 题解 后缀数组裸题 在BZOJ被卡常到哭QAQ #include<algorithm> #include<iostream> #include< ...
- Vim使用小记(二)插件管理
By francis_hao Mar 8,2017 Vundle Vundle,全称为Vim bundle,是一个插件管理器.可以对vim插件进行安装和卸载. Vundle的安装方法看这里[参考 ...