Jerkwin分享 http://blog.sciencenet.cn/u/Jerkwin

博文

从光谱到颜色

已有 8324 次阅读 2014-12-9 01:09 |个人分类:数学轮子|系统分类:科研笔记

2014-12-08 11:02:23

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

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

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

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

XYZk=kS(λ)R(λ)xˉ(λ)dλ=kS(λ)R(λ)yˉ(λ)dλ=kS(λ)R(λ)zˉ(λ)dλ=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://blog.sciencenet.cn/blog-548663-849496.html

上一篇:Linux服务器映射为本地硬盘
下一篇:物理化学中的标准态符号
收藏 IP: 72.202.199.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (4 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-19 07:10

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部