YCbCr空间中进行色彩调整的方法
今天看到一篇对我很有帮助的文档,给大家转转。
原文地址:http://blog.sina.com.cn/s/blog_53a06e87010087dh.html
YCbCr以极坐标表示,则Chroma和Hue的计算公式如下:
Chroma = Sqrt(Cb^2+Cr^2)
Hue = Arctg(Cr/Cb)
下面我们给出了6种颜色的C与H的值:
R G B Y Cb Cr C H
Red 255 0 0 76 84 235 250 72
Blue 0 0 255 29 235 106 257 24
Green 0 255 0 150 42 18 45 24
Yellow 255 255 0 226 0 150 150 270
Cyan 0 255 255 179 172 0 172 360
Magenta 255 0 255 105 214 235 319 50
那么现在我们就有了最基本的调整关系公式了。
在YCbCr空间中,一般情况下我们进行调整都是利用一个调整矩阵来实现的:
| Y' | |k1 k2 k3| | Y|
|Cb'| =|k4 k5 k6| * |Cb|
|Cr' | |k7 k8 k9| |Cr|
这里我们主要调整的就是这个矩阵的各个参数了,我们一般调整的物理参数主要有:Contrast,Cb_Gain,Cr_Gain,Hue这几种参数,那么这几个参数是如何作用的呢?下面一个一个来说吧:
Contrast:这个参数只需要调整第一行即可,一般的调整范围在(0~4)之间;
Cb_Gain:需要调整的是就是第二行了,范围大致也在(0~4);
Cr_Gain:这个与Cb_Gain类似,调整的是第三行,范围(0~4);
Hue:这个的调整是比较麻烦的,因为这个是在极坐标系内处理的,而从公式看,它又与Cb和Cr都有关系,但与Y无关。一般来说tan(Hue)=k6/k5=-k8/k9。调整的时候由于还要考虑到chroma的归一问题,所以还要进行如下限制:
k5^2+k6^2=1(不考虑cb_gain的时候)
k8^2+k9^2=1(不考虑cr_gain的时候)
这时候在上面的两个限制前提下,再加上tan(Hue)=k6/k5=-k8/k9,我们就可以按照Hue(0~360)来一度一度的进行调节了。
YCbCr空间中进行色彩调整的方法相关推荐
- 关于如何在空间中建立直角坐标系
关于如何在空间中建立直角坐标系 前言:以前数学没学好,给现在埋了很多坑,现在来补一下数学基础,编写此文方便以后复习 空间直角坐标系的定义:空间任意选定一点O,过点O作三条互相垂直的数轴Ox,Oy,Oz ...
- OpenCV Using Python——HSV颜色空间和改进的YCbCr颜色空间中的肤色检测
HSV颜色空间中的肤色检测 1. HSV颜色空间的肤色模型简介 Pitas等人提出在HSV空间建立肤色模型.不要求颜色归一化并且对光照鲁棒性很强,条件同时满足才会被分割成皮肤.实现条件如下: 2. 实 ...
- ORA-01653 表xxx无法通过8(在表空间xxx中)扩展解决方法
当前系统的数据量越来越大的,昨天还运行正常的数据库,突然无法使用了.经过定位发现是"ORA-01653 " 即表空间满了,在这里简单记录下处理办法,长期来看oracle是顶不住了, ...
- 知识图谱中传统关系抽取方法
目前主要采用统计机器学习的方法,将关系实例转换成高 维空间中的特征向量或直接用离散结构来表示,在标注语 料库上训练生成分类模型,然后再识别实体间关系 基于特征向量方法 最大熵模型(Kambhatl ...
- 继承实现的原理、子类中调用父类的方法、封装
一.继承实现的原来 1.继承顺序 Python的类可以继承多个类.继承多个类的时候,其属性的寻找的方法有两种,分别是深度优先和广度优先. 如下的结构,新式类和经典类的属性查找顺序都一致.顺序为D--- ...
- 一文看尽4种SLAM中零空间的维护方法
点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨wuRDmemory@知乎 来源丨https://zhuanlan.zhihu.com/p/34 ...
- Bioinformatics| 生物医学网络中的图嵌入方法
今天给大家介绍Bioinformatics期刊的一篇文章,"Graph embedding on biomedical networks: methods, applications and ...
- cloning java_深入浅出Java中的clone克隆方法,写得太棒了!
作者:张纪刚 blog.csdn.net/zhangjg_blog/article/details/18369201/ 2019-03-24 10:33:04 Java中对象的创建 clone 顾名思 ...
- 智能,万亿维空间中的求解
作者:Terry J. Sejnowski 编译:贾伟.梦佳 1884年,Edwin Abbott 在讽刺小说<平面国>中描述了这样一个世界,这个国家生活在一个二维世界中,平面国的人们只能 ...
最新文章
- 【Android】Anroid5.0+新控件---酷炫标题栏的简单学习
- switch中default的用法
- jdom学习:读取xml文件
- Linux 网络层收发包流程及 Netfilter 框架浅析
- TensorFlow(九)eval函数
- android 音频播放总结 soundlPool,MediaPlay
- 再谈网络字节顺序,大小端问题
- 什么是UPS电源系统
- grafana zabbix 模板_【Grafana教程】安装Grafana并配置Zabbix数据源
- [算法]圆圈中最后剩下的数
- 用Notepad2替换Windows自带记事本
- 如何使用Bartender标签打印软件批量打印构件二维码标签?
- cefsharp修改html元素,CefSharp网页元素点击
- 电子计算机的两个重要改进是,1946年,冯.诺依曼在研制EDVAC计算机时,提出的两个重要改进是什么?...
- 复制命令(COPY)
- 【DDD落地实践系列】DDD领域驱动设计如何进行工程化落地
- android格式化SD卡,获取其它程序的缓存大小,清理数据
- 《三井帝国在行动》pdf电子版下载
- java交易撮合怎么实现_「康力电梯002367」“股票实时交易系统如何实现高并发撮合交易?最好有java架构“java 股票分析工具-京东方a小-seo金融...
- 一条sql语句添加多个字段
热门文章
- Android Sensor架构和原理分析
- Vscode之运行更新出错
- 人脸方向学习(十九):Face Landmark Detection-SBR-解读
- 深度学习自学(十五):人脸识别数据预处理方法
- 使用PyQt打包命令pyinstall的几个问题
- 计算机金融专业课程方案,《计算机在金融业中的应用》教学实施方案
- python怎么导入csv文件数据-机器学习Python实践——数据导入(CSV)
- 取rtsp流数据_SDP在RTSP、国标GB28181、WebRTC中的实践
- mysql startswith_Java startsWith()方法
- BeanUtils.copyProperties使用