视频图像处理基础知识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主要是研究如何让机器看懂世界的一种技术,通过各种光 ...
随机推荐
- Python request 简单使用
Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库.它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTT ...
- xshell、xftp免费版下载方法
第一步:进入官站 https://www.netsarang.com/ 第二步:选中Free License
- 接口自动化测试框架Karate入门
介绍 在这篇文章中,我们将介绍一下开源的Web-API自动化测试框架--Karate Karate是基于另一个BDD测试框架Cucumber来建立的,并且共用了一些相同的思想.其中之一就是使用Gher ...
- 初识Django —Python API接口编程入门
初识Django —Python API接口编程入门 一.WEB架构的简单介绍 Django是什么? Django是一个开放源代码的Web应用框架,由Python写成.我们的目标是用Python语言, ...
- 十分钟掌握pandas中文版(pandas官方文档翻译)
转载自 https://blog.csdn.net/jiangjiang_jian/article/details/80022918
- mongolass 中报 ($.content: "say Hi ~") ✖ (type: String)
第二次报这个错了, 一直以为MongoDB的模型用的type 是 String, 一直报错, 找不到原因. // 留言模型1 exports.Comment = mongolass.model('Co ...
- [leetcode-652-Find Duplicate Subtrees]
Given a binary tree, return all duplicate subtrees. For each kind of duplicate subtrees, you only ne ...
- 在Android Studio中创建(或添加)第一个Hello World应用程序
下面我们将使用Android Studio创建第一个简单的Hello World应用程序. 1.打开Android Studio,加载画面如下图所示: 2.选择”Start a new Andro ...
- Python中enumerate函数用法详解
enumerate函数用于遍历序列中的元素以及它们的下标,多用于在for循环中得到计数,enumerate参数为可遍历的变量,如 字符串,列表等 一般情况下对一个列表或数组既要遍历索引又要遍历元素时, ...
- angular强制刷新
有时候请求完毕,某些变量重新赋值后不会体现在页面上,此时需要强制刷新 $scope.$apply(function () { $scope.message ="Timeout called! ...