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 颜色恒定性的更多相关文章

  1. 深度学习白平衡(Color Constancy,AWB):ICCV2019论文解析

    深度学习白平衡(Color Constancy,AWB):ICCV2019论文解析 What Else Can Fool Deep Learning? Addressing Color Constan ...

  2. 白*衡(Color Constancy,无监督AWB):CVPR2019论文解析

    白*衡(Color Constancy,无监督AWB):CVPR2019论文解析 Quasi-Unsupervised Color Constancy 论文链接: http://openaccess. ...

  3. Android:认识R类、findViewById方法查找组件、@string查找字符、@color查找颜色、@drawable查找图片、@dimen某个组件尺寸定义、项目引入资源国际化

    导入 之前都是断断续续的看了一些于如何使用android开发的文章.资料等,到目前位置很多基础的东西都不清楚,于是去学习了别人的课程,才了认识了R类.findViewById方法查找组件.项目引入资源 ...

  4. (转)System.Drawing.Color的颜色对照表

    经常使用System.Drawing.Color, 本篇介绍一下颜色与名称及RGB值的对应关系. 1. 颜色与名称的对照表(点击下图放大看): 2. 颜色与RGB值对照表: Color.AliceBl ...

  5. HTML5的input color系统颜色选择器

    前两天,我写了一篇<推荐两款jQuery色盘选择器>介绍,那是使用JavaScript实现的色盘,今天我给大家介绍HTML5的色盘选择器.HTML5有一个input类型为color,即颜色 ...

  6. QTabWiget Change Color 改变颜色

    Qt中的QTabWiget 类提供了一个标签控件,但是这个控件默认初始化的颜色是白色,和原窗口的颜色不同,看起来非常的违和,所以我们希望将其的背景颜色设为当前窗口的背景颜色.我们所要做的就是先将应用程 ...

  7. iTween基础之Color(变换颜色)

    一.基础介绍:二.基础属性 原文地址: http://blog.csdn.net/dingkun520wy/article/details/51065275 一.基础介绍 ColorTo:从当前颜色变 ...

  8. QTabWiget Change Color 改变颜色(每个QWidget都有一个自己的调色板palette,设置它的颜色,然后setAutoFillBackground即可)

    Qt中的QTabWiget 类提供了一个便签控件,但是这个控件默认初始化的颜色是白色,和原窗口的颜色不同,看起来非常的违和,所以我们希望将其的背景颜色设为当前窗口的背景颜色.我们所要做的就是先将应用程 ...

  9. 基于神经网络的颜色恒常性—Fully Convolutional Color Constancy with Confidence-weighted Pooling

    论文地址: http://openaccess.thecvf.com/content_cvpr_2017/papers/Hu_FC4_Fully_Convolutional_CVPR_2017_pap ...

随机推荐

  1. Ubuntu20.04安装RabbitMQ

    本博客旨在自我学习使用,如有任何疑问请及时联系博主 安装erlang 由于RabbitMq需要erlang语言的支持,在安装RabbitMq之前需要安装erlang sudo apt-get inst ...

  2. Spring Boot 进行优雅的字段校验

    Controller层 VS Service层 一般推荐与业务无关的放在Controller层中进行校验,而与业务有关的放在Service层中进行校验. 那么如何将参数校验写的优雅美观呢,如果都是if ...

  3. 后端跨域问题究极解决 nginx+springboot 解决OPTIONS通过却报CORS的问题

    location /joinus { # 允许跨域请求的"域",有些请求不允许* add_header 'Access-Control-Allow-Origin' $http_or ...

  4. 查找goog13的ip

    C:\Users\Deen>ping 172.217.24.14 Pinging 172.217.24.14 with 32 bytes of data: Reply from 172.217. ...

  5. docker专题 从入门到放弃

    1.docker是什么 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚 ...

  6. HashMap 链表和红黑树的转换

    HashMap在jdk1.8之后引入了红黑树的概念,表示若桶中链表元素超过8时,会自动转化成红黑树:若桶中元素小于等于6时,树结构还原成链表形式. 原因: 红黑树的平均查找长度是log(n),长度为8 ...

  7. Servlet的会话机制?

    因为http协议是无状态协议,又称为一次性连接,所以webapp必须有一种机制 能够记住用户的一系列操作,并且唯一标示一个用户. Cookie: 又称为小饼干,实际就是使用一个短文本保存用户信息, 在 ...

  8. Jinkins流水线脚本使用curl命令调用服务接口,并且使用url传参。

    curl http://xxx.xx.xx.xx:xxxx/jenkins/publish?fileName=${fileName}&tag_name=${tag_name} 如图调用不符合c ...

  9. SpringBoot集成ArtemisMQ,设置动态消息类型

    SpringBoot项目集成ArtemisMQ,那么想动态的更换消息类型,怎么办呢? 通过设置org.springframework.jms.support.destination.JmsDestin ...

  10. kafka consumer代码梳理

    kafka consumer是一个单纯的单线程程序,因此相对于producer会更好理解些.阅读consumer代码的关键是理解回调,因为consumer中使用了大量的回调函数.参看kafka中的回调 ...