图像处理之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. ...
随机推荐
- 第十次ScrumMeeting博客
第十次ScrumMeeting博客 本次会议于11月5日(日)22时整在新主楼G座2楼召开,持续20分钟. 与会人员:刘畅.辛德泰.窦鑫泽.张安澜.赵奕.方科栋. 特邀嘉宾:陈彦吉学长. 1. 每个人 ...
- 奔跑吧DKY——团队Scrum冲刺阶段-Day 4
今日完成任务 谭鑫:主要解决之前存在的控件不灵敏问题,导致界面跳转不顺利. 黄宇塘:制作新的游戏背景图,对主界面图进行调整. 赵晓海:主要解决之前存在的控件不灵敏问题,导致界面跳转不顺利. 方艺雯:制 ...
- 修改MyEclipse工作空间
MyEclipse如何更改工作空间,MyEclipse是java开发常用工具,在开发的过程中我们会经常切换工作空间来切换项目内容,初学者来说有必要讲一下如何切换工作空间 工具/原料 MyEclip ...
- Leetcode题库——20.有效的括号
@author: ZZQ @software: PyCharm @file: IsValid.py @time: 2018/9/16 20:20 要求: 给定一个只包括 '(',')','{','}' ...
- IO流的各种继承关系
- SDWebImage缓存图片的机制
SDWebImage是一个很厉害的图片缓存的框架.既ASIHttp+AsyncImage之后,我一直使用AFNetworking集成的UIImageView+AFNetworking.h,但后者对于图 ...
- 未能加载文件或程序集“Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一个依赖项。系统找不到指定的文件
发布的打包项目在本机测试好使,部署到客户服务器上报错 分析器错误消息: 未能加载文件或程序集“Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Cu ...
- 解决在Mac上用pyenv安装python3失败的问题
背景 前段时间在本地Mac系统上要跑一个python3写的压测脚本. Mac默认安装的是python2, 而且很多软件依赖的也是python2. 为了不影响现有系统其它软件, 当时安装了pyenv来实 ...
- Beta阶段冲刺前准备
第 1 篇 Scrum 冲刺博客 1.新成员 暂无新成员,等一个有缘人 团队成员: 刘阳航(captain) 陈文俊 林庭亦 郑子熙 2.讨论是否需要更换团队的PM 经过团队讨论,我们决定不更换团队P ...
- [转帖]常见USB种类
随着 USB Type-C 接口被苹果推上热门话题,那么对于我们普通的消费者来说,各种 USB 接口类型我们知道多少?买一个设备回来我们是否会遇到各种接口各种线用不了的情况呢? 那么我们泪雪网新开的一 ...