从光谱到颜色

类别:    标签: 数理   阅读次数: 645  版权: (CC) BY-NC-SA

2014-12-08 11:02:23

颜色是一种很奇妙的东西, 通常看到的颜色受多种条件影响, 计算机显示的颜色也是一样. 相关的学科是色度学, 其中的关键是确定颜色匹配函数和定义颜色空间, 有了这两种东西就可以定量地描述颜色了.

国际照明委员会简称CIE(为其法文缩写)制定了颜色匹配函数(或称标准色度观察者), 开始时直接使用了基于红蓝绿的CIE-RGB颜色空间. 但基于此空间的颜色匹配函数会出现负值, 理解使用上都不方便, 所以CIE又定义了CIE-XYZ颜色空间, 以后还定义了CIE-L’a’b’, CIE-L’u’v’颜色空间. 这些颜色空间之间存在换算关系, 可互相转换, 目前使用最广的是最早定义的CIE-XYZ系统.

通常我们实验上得到的是物质的光谱, 如各种吸收光谱, 发射光谱. 如何将这些光谱转变为具体的颜色就需要色度学的知识.

设光源的相对光谱功率分布函数为 S(λ), 物质的吸收函数为 R(λ), 则颜色三刺激值

X=kS(λ)R(λ)ˉx(λ)dλY=kS(λ)R(λ)ˉy(λ)dλZ=kS(λ)R(λ)ˉz(λ)dλk=100S(λ)R(λ)ˉy(λ)dλ

其中 ˉx(λ),ˉy(λ),ˉz(λ) 为颜色匹配函数. 注意 Y 同时被定义为代表强度.

有了颜色三刺激值后, 即可得到色度坐标,

x=XX+Y+Z,y=YX+Y+Z

从CIE标准图上即可查出具体的颜色.

利用计算机显示颜色时, 一般使用sRGB颜色空间, 从CIE-XYZ空间向sRGB空间的转换可参考sRGB的标准. 由于sRGB的色域小于CIE-XYZ, 所以在显示的时候不可能表现出所有的颜色, 这不可避免地会引起失真. 因此要想得到逼真的光谱色并不是一件容易的事情. 目前的近似解决方案很多, 最简单的是将得到的RGB值加上一个值以保证其所有值为正, 或者根据sRGB的白点将色域外的值取为边界值.

下面是各种模拟的光谱和色度图

参考资料

◆本文地址: https://jerkwin.github.io/2014/12/08/从光谱到颜色/, 转载请注明◆
◆评论问题: https://jerkwin.herokuapp.com/category/3/博客, 欢迎留言◆


前一篇: Linux服务器映射为本地硬盘
后一篇: 物理化学中的标准态符号

访问人次(2015年7月 9日起): 2246166 | 最后更新: 2025-03-26 07:35:47 UTC | 版权所有 © 2008 - 2025 Jerkwin