图像处理之CSC色彩转换
1 YUV域介绍
根据三基色原理,任意一种色光F都可以用不同分量的R、G、B三色相加混合而成,即F = r [ R ] + g [ G ] + b [ B ],其中r、g、b分别为三基色参与混合的系数。当三基色分量都为0(最弱)时混合为黑色光;而当三基色分量都为k(最强)时混合为白色光。调整r、g、b三个系数的值,可以混合出介于黑色光和白色光之间的各种各样的色光。
在现代彩色电视系统中,通常采用三管彩色摄像机或彩色CCD摄像机进行摄像,然后把摄得的彩色图像信号经分色、分别放大校正后得到RGB,再经过矩阵变换电路得到亮度信号Y和两个色差信号R-Y(即Cr)、B-Y(即Cb),最后发送端将亮度和色差三个信号分别进行编码,用同一信道发送出去。这种色彩的表示方法就是所谓的YCbCr色彩空间表示。采用YCbCr色彩空间的重要性是它的亮度信号Y和色度信号Cb、Cr是分离的。如果只有Y信号分量而没有U、V分量,那么这样表示的图像就是黑白灰度图像。彩色电视采用YUV空间正是为了用亮度信号Y解决彩色电视机与黑白电视机的兼容问题,使黑白电视机也能接收彩色电视信号,保证了信道兼容性。
CSC(color space convert):RGB与YCbCr颜色空间的转换,常用的色域空间有BT.601(SDTV,标清电视),BT.709(HDTV,高清电视),BT.2020(UHDTV,超高清电视),在不同的色域空间下,转换矩阵是不一致的。
色域表示显示设备能够显示的颜色范围,下图中马蹄形区域为人眼能看到的色彩区域,BT.601是标清视频使用的色域范围,BT.709和BT.2020分别对应高清和超高清视频的色域。
2 CSC转换矩阵
2.1 BT.601色域CSC
1 计算CSC转换后的Y分量(归一化)
EY = 0.299 ER + 0.587 EG + 0.114 EB (其中ER、EG、EB范围为[0,1])
2 归一化下红色色差分量等于红色分量减去亮度分量,即Cr
Cr = (ER - EY) = ER - 299 ER - 0.587 EG - 0.114 EB = 0.701 ER - 0.587 EG - 0.114 EB (Cr区间[-0.701,0.701])
对Cr归一化处理:
Cr = (ER - EY)/1.402 = 0.5 ER + 0.419 EG + 0.081 EB ; (Cr区间[-1, 1])
3 归一化下蓝色色差分量等于蓝色分量减去亮度分量,即Cb
Cb = (EB- EY) = EB - 0.299 ER - 0.587 EG - 0.114 EB = -0.299 ER - 0.587 EG + 0.886 EB (Cb区间[-0.886,0.886])
对Cb归一化处理:
CB = (EB- EY)/1.772 = 0.169 ER + 0.331 EG + 0.5 EB; (Cb区间为[-1 , 1])
4 由于信号的边缘有其它用途,在实际往往使用窄动态limited格式。比如8bit信号,亮度分量的范围为16-235(共220个灰阶),色差分量的范围为16-240(共225个灰阶)。10bit信号,亮度分量的范围为64-940(共877个灰阶),色差分量的范围为64-960(共897个灰阶)。因此灰阶定点化后各分量如下:
Y = 219 EY + 16 = 0.2568 * R + 0.5041 * G + 0.0979 * B + 16
Cb = 224 ECB + 128 = -0.1482 * R – 0.291 * G + 0.4392 * B + 128
Cr = 224 ECR + 128 = 0.4392 * R – 0.3678 * G – 0.0714 * B + 128
5 不考虑后面的offset偏移量,BT601_RGB2YCbCr的8Bit定点化后矩阵表示如下:
BT601_RGB2YCbCr =256* [ 0.2568 0.5041 0.0979 = [ 65.7408 129.0496 25.0624 = [ 66 129 25
-0.1482 -0.2910 0.4392 -37.9392 -74.4960 112.4352 -38 -74 112
0.4392 -0.3678 -0.0714] 112.4352 -94.1568 -18.2784] 112 -94 -18]
6 不考虑后面的offset偏移量,BT601_YCbCr2RGB的8Bit定点化后逆变矩阵表示如下:
BT601_YCbCr2RGB = inv(BT601_RGB2YCbCr) = 256 *[ 1.1644 -0.0001 1.5960 = [ 298 0 409
1.1644 -0.3917 -0.8130 298 -100 -208
1.1644 2.0173 -0.0001 ] 298 516 0]
2.2 BT.709色域CSC
1 计算CSC转换后的Y,Cb,Cr分量,转换如下:
Y = 219 EY + 16 = ?(219/255) * (0.2126 R + 0.7152 G + 0.0722 B) + 16 = 0.1826 R + 0.6142 G + 0.062 B + 16
Cb = 224 ECb + 128 = -0.1006 R - 0.3386 G + 0.4392 B + 128
Cr = 224 ECr + 128 = 0.4382 R - 0.398 G + 0.0402 B + 128
2 不考虑offset偏移量,BT709_RGB2YCbCr的8bit定点化矩阵表示如下:
BT709_RGB2YCbCr = 256 * [ 0.1826 0.6142 0.062 = [ 47 157 16
-0.1006 -0.3386 0.4392 -26 -87 112
0.4382 -0.398 -0.0402] 112 -102 -10]
3 不考虑offset偏移量,BT709_RGB2YCbCr的8bit定点化逆矩阵表示如下:
BT709_RGB2YCbCr = 256 * [ 1.1644 0.0001 1.7969 = [ 298 0 460
1.1644 -0.2133 -0.5342 298 -55 -137
1.1644 2.1125 -0.0002] 298 541 0 ]
2.3 BT.2020色域CSC
1 计算CSC转换后的Y,Cb,Cr分量,转换如下:
Y = 219 EY + 16 =(219/255) * (0.2627 R + 0.678 G + 0.0593 B) + 16 = 0.2256 R + 0.5832 G + 0.0509 B + 16
Cb = 224 ECb + 128 = (224/255) * (-0.2627 R - 0.678 G + 0.9407 B) / 1.8814 + 128 = -0.1227 R – 0.3166 G + 0.4392 B + 128
Cr = 224 ECr + 128 = (224/255) * (0.7373 R?-?0.678 G?- 0.0593 B) / 1.4746 + 128 = 0.4392 R – 0.4039 G - 0.0353 B + 128
2 不考虑offset偏移量,BT2020_RGB2YCbCr的8bit定点化矩阵表示如下:
BT2020_RGB2YCbCr = 256 * [ 0.2256 0.5832 0.0509 = [ 58 149 13
-0.1227 -0.3166 0.4392 -31 -81 112
0.4392 -0.4039 -0.0353] 112 -103 -9]
3 不考虑offset偏移量,BT2020_RGB2YCbCr的8bit定点化逆矩阵表示如下:
BT2020_YCbCr2RGB = 256 * [ 1.1632 0.0002 1.6794 = [ 298 0 430
1.1632 -0.1870 -0.6497 298 -48 -166
1.1634 2.1421 0.0008] 298 -48 -166]
图像处理之CSC色彩转换的更多相关文章
- 图像处理之CSC性能优化(源码)
1 CSC基本实现 根据前一篇CSC转换的文档了解到,RGB与YUV的变换公式如下: YCbCr(256 级别) 可以从8位 RGB 直接计算,计算公式如下: Y = 0.299 R + 0.587 ...
- 图像处理之色彩转换(CCM)
1 色彩校正原理 人眼对色彩的识别,是基于人眼对光谱存在三种不同的感应单元,不同的感应单元对不同波段的光有不同的响应曲线的原理,通过大脑的合成得到色彩的感知. 一般来说,我们可以通俗的用 RGB三基 ...
- PhotoShop 图像处理 算法 汇总
不定期更新 ...... 直接点标题即可链接到原文. OpenCV 版:OpenCV 图像处理 图层混合算法: PS图层混合算法之一(不透明度,正片叠底,颜色加深,颜色减淡)PS图层混合算法之二(线性 ...
- ISP图像处理&&相机系统
如何理解 ISO.快门.光圈.曝光这几个概念? 摄影基础篇——彻底弄清光圈.快门与ISO 理解这三个参数各自都是如何控制进入的光线量: 快门速度一般的表示方法是1/100s.1/30s.2s: 小的“ ...
- 学习笔记(2)---Matlab 图像处理相关函数命令大全
Matlab 图像处理相关函数命令大全 一.通用函数: colorbar 显示彩色条 语法:colorbar \ colorbar('vert') \ colorbar('horiz') \ col ...
- Atitit 图像处理和计算机视觉的分类 三部分 图像处理 图像分析 计算机视觉
Atitit 图像处理和计算机视觉的分类 三部分 图像处理 图像分析 计算机视觉 1.1. 按照当前流行的分类方法,可以分为以下三部分:三部分 图像处理 图像分析 计算机视觉1 1.2. 图像处理需要 ...
- Atitit 图像处理的摩西五经attilax总结
Atitit 图像处理的摩西五经attilax总结 1. 数字图像处理(第三版)1 2. 图像处理基础(第2版)(世界著名计算机教材精选)1 3. 计算机视觉特征提取与图像处理(第三版)2 4. Op ...
- Atitit 图像处理的心得与疑惑 attilax总结
Atitit 图像处理的心得与疑惑 attilax总结 1.1. 使用类库好不好??还是自己实现算法1 1.2. 但是,如果遇到类库体积太大,后者没有合适的算法,那就只能自己开发算法了1 1.3. 如 ...
- Atitit 图像处理 调用opencv 通过java api attilax总结
Atitit 图像处理 调用opencv 通过java api attilax总结 1.1. Opencv java api的支持 opencv2.4.2 就有了对java api的支持1 1. ...
随机推荐
- OSSEC 架构
OSSEC由很多部分组成,它有一个集中的管理端,用于监控.并接收来自代理.syslog.数据库或无代理设备的日志. 管理端(服务器) 管理端属于OSSEC部署中的中心部分.它存储了文件完整性检测数据库 ...
- oracle数据update后怎么恢复到以前的数据
http://blog.csdn.net/itdada/article/details/52746392
- map的运用
一.map是一种关联容器,支持高效的查找和访问 map中的元素是一些关键字-值(key-value)对: 关键字起索引作用: 值表示与索引相关联的数据. 关联容器中元素是根据关键字存储的,故其不支持位 ...
- 20172319 2018.04.01-04.11 《Java程序设计》第5周学习总结
20172319 2018.04.01-04.11 <Java程序设计>第5周学习总结 目录 教材学习内容总结 教材学习中的问题和解决过程 代码调试中的问题和解决过程 代码托管 上周考试错 ...
- jQuery全屏滚动插件fullPage使用
1. 引入jquery.js和jquery.fullPage.min.js <script src="jquery.min.js"></script> &l ...
- 冲刺One之站立会议2
在确定了总体目标之后,我们先决定了实现的具体功能,包括一个登陆界面,一个聊天室的主界面和服务器端的内容.我们今天完成了一小部分内容,把每个内容的主体框架搭建了起来. 效果如下图所示: 燃尽图2
- Task 6.2冲刺会议六 /2015-5-19
今天主要写的是登陆界面,用户状态,历史登录信息,默认用户等等.由于大部分时间都是把代码组合拳起来的过程,所以总会出现各种bug,有好大一部分不会修复.明天要继续这一部分还有熟悉一下聊天的主界面.
- User survey(用户调研)
郑文武——小学二年级学生 姓名 郑文武 性别.年龄 男.9岁 职业 学生 收入 父母给的零花钱 知识层次和能力 会使用手机 生活/工作情况 努力学习但数学成 ...
- vue 使用出现的问题(持续记录)
今天写vue 的时候,发现有几个警告.原因是 我把组件起的名字写的和默认标签的名字一样了,导致系统不知道,怎么解析. 我写了一个Header 组件, 和h5里面的header重名, 解决方案1: he ...
- XLSReadWriteII5使用示例
之前一直是使用XLSReadWriteII4,今天更新到XLSReadWriteII5,测试了一下,发现一些操作变化比较大,现将XLSReadWriteII5的使用示例写一下,以下是代码和生成的exc ...