Color Constancy 颜色恒定性
1:Color Constancy?
世界上并不存在颜色。颜色仅仅是我们的眼睛和大脑对不同可见光的波长进行的一层映射。也就说颜色只是我们大脑和视网膜处理的结果。
1.1 关键问题
我们的视觉系统有一个特殊的功能就是在光源变化的情况下,依然能够确定物体的真实颜色,这种鲁棒性是计算机等处理机器所不具有的。
同一个红彤彤的苹果,在不同颜色的光源(比如卖猪肉的地方的灯是红色光源,比如户外装饰树的小灯有的是蓝色光源)下,摄像头拍摄出来的照片与我们眼睛看到的苹果是不一致的。
这种不一致性就是要解决的“图片的颜色在不同光源下,不恒定的问题”
1.2 关键目标
色彩的恒常性,也就可以简单的理解为,在外界光源变化的情况下,依然能够保留物体原始的色彩。
我们研究色彩恒常性,提出各种算法,目的就是让计算机也具有人类视觉系统的这个特殊功能,在不同光源的照射下还原图像的本来颜色。
example:一块白色的桌布,在偏黄色的灯光照射下,手机拍摄的照片显示出:这块桌布偏黄色。此时就需要一种算法将该图片恢复成白色。
人的视觉系统具有颜色恒常性,能从变化的光照环境和成像条件下获取物体表面颜色的不变特性,但成像设备不具有这样的调节功能。
不同的光照环境会导致采集的图像颜色与真实颜色存在一定程度的偏差,需要选择合适的颜色平衡(校正)算法,消除光照环境对颜色显现的影响。
总结下就是:Colour constancy refers to the task of revealing the true colour of an object despite ambient(环境的) presence of intrinsic illuminant(光源).
1.3 什么是Color constancy?
Color constancy is the ability to recognize colors of objects invariant(• adj. 不变的) of the color of the light source.
Color constancy 是指【照片中物体的颜色】相对于【光源的颜色】,保持恒定不变。
如果发现【图片中物体的颜色】有失真,就需要通过特定的算法进行修正。那什么算法可以对失真的图片进行修正呢?
此时就必须引入著名的The Grey-World hypothesis灰度世界假说理论了。
2 灰色世界假说 The Grey-World Hypothesis
2.1 灰度世界假说
灰度世界假说是通过大量的图片分析发现,正常的图片具备一种统计特征:对于一幅有着大量色彩变化的图像(R,G,B),三个分量的平均值趋于同一灰度值。
灰度世界算法是最常用平衡算法。
- 从物理意义上讲,灰色世界假设自然界景物对于光线的反射的均值在总体上是个定值,这个定值近似地为“灰色”。
- 颜色平衡算法将这一假设强制应用于待处理图像,可以从图像中消除【环境光】的影响,获得原始场景图像。
2.2 灰度世界算法步骤


灰度世界算法简单快速,但是当图像场景颜色并不丰富时,尤其出现大块单色物体时,该算法常会失效。
3 各种不同算法的性能比较

Reference
- [Paper] Color constancy based on the Grey-edge hypothesis
- [Paper] Learning to Enhance Low-Light Image via Zero-Reference Deep Curve Estimation
Color Constancy 颜色恒定性的更多相关文章
- 深度学习白平衡(Color Constancy,AWB):ICCV2019论文解析
深度学习白平衡(Color Constancy,AWB):ICCV2019论文解析 What Else Can Fool Deep Learning? Addressing Color Constan ...
- 白*衡(Color Constancy,无监督AWB):CVPR2019论文解析
白*衡(Color Constancy,无监督AWB):CVPR2019论文解析 Quasi-Unsupervised Color Constancy 论文链接: http://openaccess. ...
- Android:认识R类、findViewById方法查找组件、@string查找字符、@color查找颜色、@drawable查找图片、@dimen某个组件尺寸定义、项目引入资源国际化
导入 之前都是断断续续的看了一些于如何使用android开发的文章.资料等,到目前位置很多基础的东西都不清楚,于是去学习了别人的课程,才了认识了R类.findViewById方法查找组件.项目引入资源 ...
- (转)System.Drawing.Color的颜色对照表
经常使用System.Drawing.Color, 本篇介绍一下颜色与名称及RGB值的对应关系. 1. 颜色与名称的对照表(点击下图放大看): 2. 颜色与RGB值对照表: Color.AliceBl ...
- HTML5的input color系统颜色选择器
前两天,我写了一篇<推荐两款jQuery色盘选择器>介绍,那是使用JavaScript实现的色盘,今天我给大家介绍HTML5的色盘选择器.HTML5有一个input类型为color,即颜色 ...
- QTabWiget Change Color 改变颜色
Qt中的QTabWiget 类提供了一个标签控件,但是这个控件默认初始化的颜色是白色,和原窗口的颜色不同,看起来非常的违和,所以我们希望将其的背景颜色设为当前窗口的背景颜色.我们所要做的就是先将应用程 ...
- iTween基础之Color(变换颜色)
一.基础介绍:二.基础属性 原文地址: http://blog.csdn.net/dingkun520wy/article/details/51065275 一.基础介绍 ColorTo:从当前颜色变 ...
- QTabWiget Change Color 改变颜色(每个QWidget都有一个自己的调色板palette,设置它的颜色,然后setAutoFillBackground即可)
Qt中的QTabWiget 类提供了一个便签控件,但是这个控件默认初始化的颜色是白色,和原窗口的颜色不同,看起来非常的违和,所以我们希望将其的背景颜色设为当前窗口的背景颜色.我们所要做的就是先将应用程 ...
- 基于神经网络的颜色恒常性—Fully Convolutional Color Constancy with Confidence-weighted Pooling
论文地址: http://openaccess.thecvf.com/content_cvpr_2017/papers/Hu_FC4_Fully_Convolutional_CVPR_2017_pap ...
随机推荐
- bash shell 快捷键
Bash Shell 快捷键: Ctrl + a - 跳到行首 Ctrl + e - 跳到行尾 Ctrl + k - 从光标处删除到行尾 Ctrl + l - 清屏,类似 ...
- 如何用 Redis 解决海量重复提交问题
前言 在实际的开发项目中,一个对外暴露的接口往往会面临很多次请求,我们来解释一下幂等的概念:任意多次执行所产生的影响均与一次执行的影响相同.按照这个含义,最终的含义就是 对数据库的影响只能是一次性的, ...
- hutool包里的ObjectUtil.isNull和ObjectUtil.isEmpty的区别
大家都用过hutool包把,包路径为:cn.hutool.core.util,最近再使用的过程中一直没高明白ObjectUtil.isEmpty和ObjectUtil.isNull两者到底有那些区别, ...
- 『忘了再学』Shell基础 — 3、echo命令的介绍与使用
目录 1.echo命令的作用 2.echo命令的基本用法 3.echo命令的-e选项用法 4.echo命令一些特殊用法 (1)输出字符带有字体颜色 (2)输出字符带有背景颜色 在讲Shell脚本之前, ...
- 百度Paddle速查_CPU和GPU的mnist预测训练_模型导出_模型导入再预测_导出onnx并预测
需要做点什么 方便广大烟酒生研究生.人工智障炼丹师算法工程师快速使用百度PaddelPaddle,所以特写此文章,默认使用者已有基本的深度学习概念.数据集概念. 系统环境 python 3.7.4 p ...
- 最新出炉的Java面试题(2022亲身经历)
面试题清单 个人近来面试了不少的公司的,该挂的挂,该应付通过的应付通过,目前对面试题部分做一个系统的总结.最起码要保证被问过的问题第二次被问到的时候是可以回答并且理解的.算是一个被动输入学习的过程. ...
- Python的类和继承
一.类的封装: 封装将类的信息隐藏在类内部,不允许外部直接修改该类的变量,只能通过该类提供的方法来实现对隐藏信息的操作和访问 class Boss(): # 类的公共属性 level=1 # 类的初始 ...
- Kafka 消费者是否可以消费指定分区消息?
Kafa consumer消费消息时,向broker发出fetch请求去消费特定分区的消息,consumer指定消息在日志中的偏移量(offset),就可以消费从这个位置开始的消息,customer拥 ...
- 攻防世界PHP2
PHP2 进入环境就一个英文其他啥都没有,英文也没啥提示信息 我们使用dirsearch扫描一下,一开始确实没扫到什么东西,到最后看了wp发现原来源码是在index.phps中,这里只提供一个思路,不 ...
- Rust 中的数据布局--非正常大小的类型
非正常大小的类型 大多数的时候,我们期望类型在编译时能够有一个静态已知的非零大小,但这并不总是 Rust 的常态. Dynamically Sized Types (DSTs) Rust 支持动态大小 ...