原文: 色彩空间基础

好一个NB的知乎专栏:色彩空间基础

第一章:色彩空间基础

关于色彩分析,引出了专门的数学基础。整个过程给出了完备的数学阐述,虽然没有试验数据,论述的相当精彩。

摘抄出一段:  上述色品图摘抄于原文

自然界本身是没有「颜色」这个属性的,只有对不同波长光线的反射率/透过率,到达人眼中的,显然是一个连续的光谱分布函数。数学上,这是一个无穷维的函数空间(巴拿赫空间)。而人眼内的三种视锥细胞,它们的感光特性曲线相当于是在这个无穷维的函数空间中建立了三个基底。任何一个光谱分布进来,三种视锥细胞被激发。由于色视觉响应的线性性,这一过程相当于光谱分布函数与三个基底做内积,或者说,「投影」到这三个基底上。

从这个观点看,人类的色视觉,是相当于在自然界所有颜色的无穷维函数空间中取了一个三维的投影。这个三维空间的基底,既可以是视锥细胞的感光特性曲线(我们的大脑就用的是这套),当然也可以是选取三种颜色的光进行组合(CIE RGB 空间),甚至还可以是用实际中不存在的「光线」进行组合 (CIE XYZ 空间)。既然这几个空间实际上是同一个线性空间,只不过由于选择了不同的基底而有不同的表达形式,那么根据线性代数的结论,这几个空间的表述形式之间,只需要通过矩阵乘法就可以完成转换,这是完全的线性变换。

 第二章色彩表示与空间转换                       

感光细胞对不同颜色的感光曲线

可以看到 L 型视锥细胞与 M 型视锥细胞的感光曲线差别很小,实际上这两种视锥细胞起源于一次基因变异,在这之前人类可都是红绿色盲呢,多亏这个基因变异,让人类可以看到更加多彩的世界——这又是一个庞大的话题了,就此打住。

总之,大自然的这千千万万种颜色,在人类的眼里看到,最后传送到大脑里的信号,就只有这三种视锥细胞的电信号而已。根据这三种电信号的强弱,大脑解读成了不同的颜色。这就是三原色理论的生物学依据。

不仅如此,人类眼睛对不同颜色光线混合的反应还是 线性 的。根据 格拉斯曼定律(Grassmann's Law),两束不同颜色的光 ,假设某个视锥细胞对他们的反应分别是 ,现在将他们按照一个比例混合,得到第三种颜色,那么视锥细胞对这个混合颜色的反应也将是前两个反应的线性叠加

格拉斯曼定律是一个实验规律,并没有物理或者生物学上的依据。然而这个规律大大简化了我们对人类彩色视觉系统的建模,并且给我们使用线性代数理论分析人类彩色视觉系统提供了一个前提和基础。

  

CIE -RGB空间曲线                                                                                        CIE-XYZ空间曲线

为了消除部分CIE-RGB空间 负数坐标,我们变换到 CIE XYZ 空间,满足一些约束条件:

  1. 所有坐标都是正的保持等能点(equal energy point)作为白色
  2. 使得新的 Y 坐标能够代表明度,也就是使得新的 Y 坐标等于视觉的明度响应
  3. 使得新的 Z 坐标在红光端保持为 0
  4. 使得所有色彩尽可能充满新的空间

在这些约束条件下,CIE 委员会设计了这两个空间之间最初的转换矩阵:


以及反变换的矩阵


虽然最开始是从 CIE RGB 转换到 CIE XYZ 空间的,但之后由于历史原因和技术原因,使得 CIE XYZ 空间更为广泛接受,逐渐作为更常用的转换空间。在最新的官方资料中,只保留了 XYZ 空间的色匹配函数,已经没有 RGB 空间的色匹配函数了。

CIE-XYZ空间色彩的正交性质:各个颜色在CIE-XYZ空间中的分布

这个曲线毕竟在三维空间中,是一条极度扭曲的曲线,不论是用来展示还是用于辅助计算都不方便。我们可以将这条曲线投影到 的平面上(上图中的黄色平面)进行「归一化」,在这个归一化的平面上,光谱色曲线就是一条形状像舌头的曲线,如上图所示位于黄色平面上的弯曲的曲线。根据格拉斯曼定律,所有的颜色都是由纯光谱色混合而来的,经过投影后只能是光谱色的「锥组合」,都会落在这个曲线范围内。这个舌头形状的图,就叫「色品图(Chromaticity Diagram)」,所有纯光谱色,构成色品图的边界。

各个颜色区间的转换公式,参考原文:色彩表示与空间转换

第三章RGB是色彩空间唯一的正交基吗? 第一个回答


        在大量实验基础上,人们得到了格拉斯曼定律 Grassmann's law (optics) 根据这个定律,颜色空间是满足线性性质的。幺元很简单就是数字1。那么构成线性空间还需要几个基本的条件:零元和加法逆元。
        零元很简单就是全黑,加法逆元是不好理解的,因为光线只能叠加,不能相减。也就是说在色彩空间里面不存在“减法”。但是在实验中可以定义一个变相的“减法”。
实验中比较两个颜色是否相等,是用两个颜色的光分别照射两块用不透光隔板隔开的白色物体,如果人眼不能分辨差别,那么认为两个颜色相等。比如说一个颜色 C1 可以由 R1, G1, B1 三种颜色的光混合而成,是什么意思呢,意思是用 C1 颜色的光照射一个白板的左边,用 R1, G1, B1 三种颜色照射白板的右边,中间用不透光隔板隔开,结果人眼看不出中间的分界线,认为两边是一样的,于是我们认为 C1 = R1+G1+B1
        在这个意义上,我们的“减法”,比如 C1-C2=C3 这样的形式,可以转化成 C1=C2+C3,也就是左边照射 C1 的光线,右边照射 C3 的光线,然后把 C2 的光线照射到右边去,这样就在实验意义上有了“减法”的手段。
王赟的答案中提到

以人类为例,人类感受到的三原色的强度,可以理解成光的能量谱(光谱的模方)与上面图中的敏感性曲线的内积

实际上确实如此,上面的格拉斯曼定律就是这个所谓“内积”的具体表现。在 CIE 定义的色彩空间中,通过“色匹配函数”来表现纯光谱色的内积分量 CIE 1931 color space,在这个 wiki 页面中大家可以看到色匹配函数是有小于零的值的,这就是通过上面那样的“减法”定义出来的。
当然,为了在实际中使用,我们普通的 RGB 空间是将上述的 CIE 1973 色彩空间做了线性变换,得到一个所有分量都大于零的色彩空间。既然是线性变换,那么得到的 RGB 空间仍然是一个线性的。         

当然,为了在实际中使用,我们普通的 RGB 空间是将上述的 CIE 1973 色彩空间做了线性变换,得到一个所有分量都大于零的色彩空间。既然是线性变换,那么得到的 RGB 空间仍然是一个线性的。
我在另一个答案 为什么红色和紫色波长相差最大,但看起来却是相近的? 里提到过

那么这些不同波长的光混合之后能呈现怎样的颜色呢?根据实验,我们假定人眼在颜色响应方面是线性的(Grassmann's law (optics)),所以这些光混合之后所能呈现的颜色,就是这条曲线「内部」所代表的空间(更严谨一点叫做「凸组合」)。所以就有了舌形图下部的那一条直线。也就是说,这条直线上的颜色,都不是单纯的光谱色,都是混合出来的。
而我们的显示器,则是在这个空间内部,选了三个点,来「围住」尽可能大的面积。在这个三角形内部的颜色都是显示器可以显示的,而这个三角形外部的颜色则是显示器显示不了的。

这里要强调一下是“凸组合”,因为光线没有办法相减,上面实验中的“减法”也不过是一种变通,因此只能是凸组合(也就是围出来的凸多边形,不能到达凸多边形以外的地方)
        可见,只要在这个色度图里面任意取若干点,就能组成由这几个顶点组成的凸多边形内部所有的颜色了。之所以采用RGB三种颜色,从这张图上也可以看出来,由这三种颜色围出来的三角形能包含更多的颜色而已。
         当然,为了实现更多的颜色,现在已经有很多四色的激光和OLED显示器了,色彩表现比三色的要丰富很多。

CNN结构:色彩空间建模-色彩空间分析的更多相关文章

  1. CNN结构:图片风格分类效果已成(StyleAI)

    CNN结构:图片风格分类效果已成.可以在色彩空间对图片风格进行分类,并进行目标分类. StyleAI构架:FasterRCnn + RandomTrees 为何不使用MaskRCNN? MaskRCN ...

  2. 卷积神经网络(CNN)在句子建模上的应用

    之前的博文已经介绍了CNN的基本原理,本文将大概总结一下最近CNN在NLP中的句子建模(或者句子表示)方面的应用情况,主要阅读了以下的文献: Kim Y. Convolutional neural n ...

  3. AI:IPPR的数学表示-CNN结构进化(Alex、ZF、Inception、Res、InceptionRes)

    前言: 文章:CNN的结构分析-------:  文章:历年ImageNet冠军模型网络结构解析-------: 文章:GoogleLeNet系列解读-------: 文章:DNN结构演进Histor ...

  4. CNN结构演变总结(二)轻量化模型

    CNN结构演变总结(一)经典模型 导言: 上一篇介绍了经典模型中的结构演变,介绍了设计原理,作用,效果等.在本文,将对轻量化模型进行总结分析. 轻量化模型主要围绕减少计算量,减少参数,降低实际运行时间 ...

  5. MYSQL索引结构原理、性能分析与优化

    [转]MYSQL索引结构原理.性能分析与优化 第一部分:基础知识 索引 官方介绍索引是帮助MySQL高效获取数据的数据结构.笔者理解索引相当于一本书的目录,通过目录就知道要的资料在哪里, 不用一页一页 ...

  6. 【Wyn Enterprise BI知识库】 认识多维数据建模与分析 ZT

    与业务系统类似,商业智能的基础是数据.但是,因为关注的重点不同,业务系统的数据使用方式和商业智能系统有较大差别.本文主要介绍的就是如何理解商业智能所需的多维数据模型和多维数据分析. 数据立方体 多维数 ...

  7. 【转】由浅入深探究mysql索引结构原理、性能分析与优化

    摘要: 第一部分:基础知识 第二部分:MYISAM和INNODB索引结构 1.简单介绍B-tree B+ tree树 2.MyisAM索引结构 3.Annode索引结构 4.MyisAM索引与Inno ...

  8. CNN结构:用于检测的CNN结构进化-分离式方法

    前言: 原文链接:基于CNN的目标检测发展过程       文章有大量修改,如有不适,请移步原文. 参考文章:图像的全局特征--用于目标检测 目标的检测和定位中一个很困难的问题是,如何从数以万计的候选 ...

  9. CNN结构演变总结(一)经典模型

    导言:    自2012年AlexNet在ImageNet比赛上获得冠军,卷积神经网络逐渐取代传统算法成为了处理计算机视觉任务的核心.    在这几年,研究人员从提升特征提取能力,改进回传梯度更新效果 ...

随机推荐

  1. ECMAScript 6 入门学习笔记(零)——开始

    所有es6笔记都是我自己提出来的一些点,没有很详细的例子什么的,这个链接就是我看的教程,有需要的可以看看.(http://es6.ruanyifeng.com/#docs/intro) 1.ECMAS ...

  2. HDU——1787 GCD Again

    题意: 在一次acm竞赛之后,你花了一些时间去思考和尝试解决那些未解决的问题吗? 不知道?哦,当你想成为“大牛”的时候,你就必须这样做. 现在你会发现,这个问题是如此熟悉: 两个正整数a和b的最大GC ...

  3. ssh连接失败

    参考:http://www.cnblogs.com/starof/p/4709805.html https://www.chenyudong.com/archives/ssh-using-privat ...

  4. __weak与__block区别分析

    API Reference对__block变量修饰符有如下几处解释: //A powerful feature of blocks is that they can modify variables ...

  5. Oracle Study之--Oracle 11gR2通过RMAN克隆数据库

    Oracle Study之--Oracle 11gR2通过RMAN克隆数据库 Purpose of Database Duplication A duplicate database is usefu ...

  6. swift 2.0 语法 循环

    //: Playground - noun: a place where people can play import UIKit /*: for循环 * 基本用法和OC一致 * 条件表达式必须是bo ...

  7. linux替换目录下所有文件中的某字符串

    linux替换目录下所有文件中的某字符串 比如,要将目录/modules下面所有文件中的zhangsan都修改成lisi,这样做: sed -i "s/zhangsan/lisi/g&quo ...

  8. Android开发常用框架汇总

    作为一名程序猿,好的工具会让你在搬运工的道路上越走越远.以下框架是AC在开发过程中经常会使用到的一些好的框架.列在这里做一个小小的总结,包含但不限于此. 响应式编程 RxJava https://gi ...

  9. [模板]平衡树splay

    气死我了,调了一个下午+两节课,各种大大小小的错误,各种调QAQ,最后总之是调出来了. 其实就是一个双旋操作,然后其他就是左儿子<当前节点<右儿子,剩下就是细节了. 题干: 题目描述 您需 ...

  10. JZOJ 5461 购物 —— 贪心

    题目:https://jzoj.net/senior/#main/show/5461 贪心,原来想了个思路,优先选优惠价最小的 K 个,然后其他按原价排序遍历: 如果当前物品没选过,原价选上,如果选过 ...