专栏首页行走的机械人【3000字扫盲】来搞"颜色"!RGB/HSV/HSI颜色模型

【3000字扫盲】来搞"颜色"!RGB/HSV/HSI颜色模型

一:RGB三原色

RGB三原色是怎么来的呢?

当然,是因为他们三者可以调配出其他所有颜色。但为什么偏偏是这三个颜色呢?

人眼有四种感光细胞,分别是三种锥状感光细胞,分别感知红,绿,蓝三色,以及感知黑白的杆状细胞。

通过实验科学家们测量了三种锥状细胞的感光范围及其灵敏度:

那三原色是不是取的三种细胞感光最灵敏的三处颜色呢?不是,因为他们三个不满足格拉斯曼定律(视觉三基色假说)。

该假说内容如下:

  1. 所有颜色都可由相互独立的三基色得到
  2. 假如三基色的混合比相等,则色调和色饱和度也相等
  3. 任意两种颜色混合产生的新颜色与采用三基色分别合成这两种颜色的各自成分混合起来得到的结果相等
  4. 混合色的光亮度是原来各分量光亮度的总和

人眼的感受光谱范围约为380~780 nm,而使用三种细胞感光最灵敏的三处颜色,相互混合后不足以配出人眼所能看到的所有颜色,也就是不满足假说的第一条。

这就相当于一个三元求解函数F = a*R+b*G+c*B,a,b,c均大于等于零,R,G,B代表三种原色,然后要求函数值F覆盖380~780nm所有的数,这个函数的解自然有很多很多。

为标准化起见,1931年国际照明委员会(CIE)作了统一规定,选定波长为700nm、546.1nm和435.8nm的单色光作为红R、绿G、蓝B三原色,又称为物理三基色。

确定了三基色,就可以建立RGB颜色空间模型了:

二:HSV颜色模型

那为什么又有了一个HSV模型呢?

HSV模型的方便之处大家都知道,我想提取红色,但用RGB模型你可以用一个组合或者一个区间准确的描述红色吗?不能,因为用三原色调配出类红色有太多选择了。

但有HSV就可以用一个区间描述特定的颜色,H代表色度,S代表色饱和度,V代表明度。

而实际上自然世界是没有色度,色饱和度和明度这仨东西的,是人们抽象出来的概念,这套概念比RGB更符合人的视觉特性,虽然人眼是靠RGB三色感光细胞感知颜色的。且HSV可以大大简化图像分析与处理的工作量。

而实际上,HSV这套色彩空间与RGB色彩空间是同一个物理量的不同表示法,两者之间存在转换关系。

H表示色度,用角度表示(0-360°),反应了该颜色最接近什么样的光谱波长。规定0°为红色,120°为绿色,240°为蓝色。

S表示色饱和度,色饱和度参数是色环(上图)的原点到彩色点的半径长度,以上图红色线为例,红色线外端点为纯红色(R原色),其饱和度为1(100%),而红色线根部(原点处),饱和度为0(0%)。

V表示光照强度或明度,他确定了像素的整体亮度,而不管其颜色是什么,其亮度值由最亮1(100%)到最暗0(0%)。

三个变量,H,S处于同一平面,V轴垂直于该平面,所以就可以得到一个圆柱形了:

但我们平时见到的都是锥形的,如下图:

两者的区别,网上的解释大多是一句话:

圆柱形是数学理论上的模型,而圆锥形是概念上的模型。

之后我在下面链接中看到了更为详细的解释:

https://www-kamilet-cn.mipcdn.com/c/s/www.kamilet.cn/about-hsv/mip/#&lid=11968506282765462076&srcid=1599&mipanchor=&eqid=a618ad0d64442a3c100000005f088052&searchFrom=1020712a&sids=148077_147891_146653_150083_150906_150800_149586_146549_147279_148194_148868_141744_149619_149718_150074_148402_150480_149540_131861_151263_148523_148724_127969_147546_151031_150165_150106_139882_144966_146732_151154_147679_100807_148754_151149_146396_148714_146958_107314_149253_150051_150647_138426_151116_150340_146574_146819_149761_150913_110086&mipservice=1&order=1&cambrian=%7B%22type%22%3A%22cambrian%22%2C%22logo%22%3A%22%5C%2F%5C%2Fcambrian-images.cdn.bcebos.com%5C%2F292b31939fa376d0f79861288fbf8fb1_1513750297939.jpeg%22%2C%22title%22%3A%22%5Cu8bbe%5Cu8ba1%5Cu5e08%5Cu5145%5Cu7535%5Cu7ad9%22%7D

原因如下:

按说,HS两者构成一个圆,V垂直于这个圆面,得到的是一个圆柱,但该圆柱颜色空间并不适用于作颜色模型,颜色模型应该满足正向反向都具有唯一性。

也就是我在模型上确定一个点,它的颜色是唯一的;而我在外界找到一种颜色,该颜色在模型上的点也是唯一的。

那再看圆柱模型,黑色在模型上是唯一的吗?

当明度V为零时,HS将没有意义,圆柱的整个底面都是一个颜色:黑色。所以我们将圆柱的底部挤压为一个点,变成圆锥模型,这时就符合颜色模型定义了。

仔细对照一下两者,会发现其实这两个模型在颜色量上是一样的,只是锥形具有了唯一性。

三:HSI颜色模型

我们再说一下除了HSV模型,还有一个HSI模型,两者类似,不同在于:I代表亮度,V代表明度。

亮度和明度的区别是:

一种纯色的明度等于白色的明度,而纯色的亮度等于中度灰的亮度。

换句话说,明度值是相对1处而言,亮度值是相对0.5处而言。

由此,两者的颜色模型也不同,HSI是双锥形,中间最粗处亮度为0.5;而HSV是倒锥形,最粗处明度为1:

稍微用心一些,应该就能理解两者的区别吧。

最后和大家分享一个在抖音上看到的色盲悖论:

假设有一个人,从出生开始就患有一种奇怪的色盲症,他会把绿色看成蓝色,把蓝色看成绿色,但是他并不知道自己跟别人不一样,别人看到的森林是绿色的,他看到的是蓝色的。

但是因为从小别人就告诉他森林是绿色的,所以尽管他和别人看到的颜色不一样,但是叫法都是一样的,都是绿色,我们眼中的天空是蓝色的,但是他看到的是绿色的,但是他把绿色叫做蓝色,所以他和我们都不知道他和我们不同。

那么问题来了,我们要怎么证明自己不是这个人呢?

其实这种情况,天空颜色的波长是恒定的,两人的叫法也是一样的都叫蓝色,只是俩人在自己心中看到的不一样,对人类文明的发展一点阻碍也没有,但活动下脑筋还是可以的,哈哈。

THE END

本文主要是以中科院“数字图像处理与分析”课程第二章为基础,结合自身思考的疑问并搜集的网上一些朋友的答案补充而写成的,所以未标原创,仅作分享,欢迎转发。

本文分享自微信公众号 - Opencv视觉实践(gh_31e12b1be0e0),作者:是周旋呀

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【opencv实践】图像增强基本操作

    上面这幅黑乎乎的图就是我们今天要处理的图片,这是书的一页,但特别特别黑,对于这种因为阴影而导致的细节缺失,我们就可以尝试对其进行图像增强了。

    周旋
  • 【工程材料B】一:材料力学性能概述

    我们可以看到,材料的性能分为材料的使用性能和材料的工艺性能。使用性能是指材料在使用过程中所表现的性能, 包括力学性能、 物理性能、化学性能。工艺性能是指材料在加...

    周旋
  • 【材料力学】二:轴向拉伸与压缩

    上图中a,b,c三个图两边受力都不同,但在杆中间截面上的内力时相同的,所以上图三种不同的组合,因为静力等效,所以可以都换为a图的形式进行计算。

    周旋
  • 基于R-Net、QA-Net和BiDAF实现中文观点型问题机器阅读理解

    https://challenger.ai/competition/oqmrc2018

    机器学习AI算法工程
  • 想效仿英伟达50分钟训练 BERT?只有GPU还不够……

    近期关于无监督语言建模的研究证明,训练大型神经语言模型推动了自然语言处理应用中的 SOTA 结果。但是,对于非常大的模型而言,内存限制了实际训练的模型大小。模型...

    机器之心
  • 精炼鉴黄师背后的故事

    用AI来鉴别黄色图片,已经不是什么新鲜的事情。然而能够训练出一个可用的图像识别模型,其中所需要的细节知识还是值得学习的。

    代码医生工作室
  • 统计学习方法概论

    1.统计学习 统计学习的对象是数据,它从数据出发,提取数据的特征,抽象出数据的模型,发现数据中的知识,又回到对数据的分析与预测中去。统计学习...

    机器学习AI算法工程
  • 塔秘 | 应用 AI 之前,你必须了解的 10 项准备工作

    导读 不是每一个问题都可以通过机器学习来解决,且不是每一个公司都准备应用人工智能。本文会告诉你,你的公司是否有利用人工智能的条件,以及在那之前如何才能实现它。 ...

    灯塔大数据
  • 关于集成建模,这有40个给数据科学家的技能测试题及解答

    大数据文摘
  • 可解释的机器学习

    想象你是一个数据科学家,你想要在业余时间根据你朋友在facebook和twitter上发布的信息,来预估你朋友假期要去度假的地方。如果你预测对了,你朋友一定叹为...

    AI研习社

扫码关注云+社区

领取腾讯云代金券