xyz坐标图_“色觉地图”的建立(二):辐照度与亮度、rgb空间、“颜色图”的混色方式...

a610c56bb1a126225cee018902d30962.png

上篇““色觉地图”的建立(一):光感受器、色匹配实验与CIE RGB坐标系“中说到,人的色觉是线性的,我们可以用叠加原理“混色”——这意味着色觉的空间固定不变,我们可以任意选择一组基底(或说坐标系),去定量描述它。所以,人们选择了三个单频光(CIE RGB)产生的色觉作为色觉基底,通过色匹配实验,定量描述了所有等辐照度单频光所独立产生的色觉。

于是我们就获得了梦寐以求的“色觉地图”了!不过有时它还不够好用,因为同一颜色、不同亮度对应着不同的色觉坐标。这一篇我们将制作一个“颜色图”:rgb空间。

一、前置知识:辐照度与亮度

需要注意的是,色匹配实验是以“辐照度(

)”为坐标值的,但是辐照度与人所感知的“亮度“并不是一回事:人对亮度的感知可以抽象成一个独立于色彩感知之外的“光感受器”。这意味着它有一个单独的“光谱敏感度函数”:

9d36c65fc12bae3e2b65f975b8cde8a0.png

人们常常叫这个函数为“

”。通过这个函数,对每一波长的辐照度进行加权运算,得到的就是人所感知的亮度。亮度以
或者“尼特”作为单位。

二、(CIE) rgb空间

上一篇中,我们建立了第一个“色觉的地图”——一个以CIE RGB坐标系表示的三维空间。380-720nm的单频光对应的色觉坐标如下图:

590dba81c264ac657ad05b5b9fa35da1.png
两个闭合曲线分别代表两个辐照度的单频光产生的色觉

对于同一个颜色、不同的辐照度,在“色觉地图”中将对应不同的点:各种色彩、明暗显然都会带来不同的感觉。但是如果我们想把同一个颜色用一个坐标表示,建立一个“颜色图”呢?

可以用“相对值”来表示:

对于任意一个三维向量表示的色觉,若字母是小写,即为“相对值”,或说其为“辐照度无关”的量。如对CIE RGB坐标系,其与rgb空间的转换关系如下:

经过这样一处理,rgb空间中的任何颜色都与辐照度无关,每一个点都代表了所有辐照度下的同一个颜色。而且rgb三者之和为1,所以有知二求三的性质。来看看rgb空间中,单频光对应的点形成的图像:

4bbfec0483a3a58ac475e3d87f7fe0d0.png
左上右下的轴为r,左下右上的轴为g,竖直的轴是b

我们应当心里清楚rgb空间是从CIE RGB坐标系转换过来的(也许它应当叫CIE rgb),所以三个坐标轴必然与“单频光色”轮廓相交,且:

  • r轴与轮廓相交的点是700nm光对应的颜色。
  • g轴与轮廓相交的点是546.1nm光对应的颜色
  • b轴与轮廓相交的点是435.8nm光对应的颜色。

由于rgb坐标有“知二求三”的性质,所以我们可以垂直着看rg面,而不损失任何信息(

):

0bb88d275fdb2f3c64d399c0aa923d4b.png
横坐标为r,纵坐标为g

直观地说,(RGB坐标表示的)色觉空间是描述所有色觉的,既包含颜色,也包含亮度;而rgb空间企图把颜色和亮度分离开来,但可惜的是,它只做到了“辐照度无关”:简而言之,rgb中的颜色之间的亮度大不相同。这么说来,上图的绘制有些不严谨:红橙色与蓝紫色的亮度应大大低于绿色。

至此,我们获得了一个“色觉地图”(CIE RGB坐标系表示),和一个“颜色图”(rgb坐标系表示,且色彩间亮度不同),需要特别注意的是,它们之间不可以通过线性变换互相转换,RGB到rgb的转换过程是损失信息的。

三、色觉地图、颜色图的混色方式之区别

在专栏首篇文章“色彩科学学习笔记——从摄影出发“中,有提到过,xyY色度-亮度图与XYZ坐标的“色觉地图”的混色方式不同(这句话目前有些超纲了,XYZ坐标与xy坐标就是“色觉地图”和对应“颜色图”的关系)。这里将给出“色觉地图”、“颜色图”两个空间的混色方式的具体区别。

“色觉地图“的混色方式:向量运算

a9eaa4f2933296d502ee3eb2b20d6870.png
两个轨迹分别对应单倍、双倍辐照度的单频光

向量运算就是平行四边形法则,很直观。图中进行的运算是:

由于所得到的

对应的光已不是单频光,所以可以看到相加得到的向量并没有与“双倍单频光”形成的轨迹相交。

“颜色图“的混色方式:“凸集内一点“

我不知道该如何用简单的数学语言描述它,但是也可以直观地在图中表示出来。简而言之,如果是两个基色混色,那所有的结果将都在两个点之间:

d3a905119d5ff7fc91feabd6e9d18c04.png
横坐标为r,纵坐标为g

图例中展示了490nm光色与540nm光色混合时,所有可能的颜色的轨迹:为两基色对应点相连的直线组成的颜色集合。需要注意的是,尽管我选择的几个点的基色混合是比例变化的,但在“颜色图”中看起来并不是按比例变化的。

所以我们在“颜色图”中,只能知道几个基色混合的所有结果的集合,但并不能在图中进行精确地计算。

接下来看看三个基色的情况:

0b8afe22d6788f47efb9c3a8ee3c03ce.png
rgb空间中,三个基色的混色https://www.zhihu.com/video/1133342427304775680

视频中三个基色分别取:490nm、525nm、625nm单频光对应的颜色。三个基色对应的点围成一个三角形轮廓,轮廓内任意点皆可通过这三个基色混合而来。

如果基色数大于3,则可以混合出基色为顶点形成的凸集中的所有色。

至此,我们获得了两个工具:标定所有色觉的“色觉地图”(CIE RGB坐标系)与标定所有颜色的“颜色图”(rgb坐标系)。我们还知道,“颜色图”并非从“色觉地图”线性变换得来,它们属于不同空间。我们还搞懂了在这两种空间中混色的方法。美中不足的是,目前颜色图上的颜色亮度有些不一样。


注:文中所用的图像是使用Mathematica从原数据搭建出来的,原数据来源于BruceLindbloom。所有图像不允许没有标注来源的转发。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/410047.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Nginx的应用之动静分离

Nginx 的动静分离 我们通过中间件将动态请求和静态请求进行分离,减少了不必要的请求消耗和延时。 动静分离后,即使动态服务不可用,但静态资源不会受到影响。 应用实例 1、准备环境 系统角色主机名IP服务CentOS 7.2反向代理Nginx_Proxy192.168…

[html] 说说你对网格布局的理解

[html] 说说你对网格布局的理解 目前是最强大的布局方案,但兼容性差个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易, 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

【SQLSERVER】SQL SERVER 2008筛选表报错

【SQLSERVER】SQL SERVER 2008筛选表报错 错误详细:标题: Microsoft SQL Server Management Studio------------------------------无法为该请求检索数据。 (Microsoft.SqlServer.Management.Sdk.Sfc)有关帮助信息,请单击: http://go.microsoft.com/fwli…

安装ipython失败 in error catcher_疯狂的Python:零基础小白入门帖子详情 - 网易云课堂...

C:\Users\David>pip install IpythonCollecting IpythonUsing cached ipython-6.1.0-py3-none-any.whlCollecting pygments (from Ipython)Downloading Pygments-2.2.0-py2.py3-none-any.whl (841kB)53% |█████████████████▏ | 450kB 3.3kB/…

3d打印英语文献_锐医学院 | 只需10分钟!解读康复医学文献+英语学习

文献解读英语学习只需10分钟锐医学院致力于专业康复教育培训同时,也在康复领域专家的合作下,一直在研究康复领域最前沿所取得的研究成果、存在的问题以及发展趋势进行系统和全面的叙述和评论与各领域康复专业人士分享。文献解读有助于发现前沿性问题&…

node.js通过回调函数获取异步函数的返回结果

html文件代码<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>我的node.js首页</title> </head> <body></body> </html> 通过buffer流读取html文件var fs require(fs);…

[html] 写页面布局时你有考虑过分辨率因素吗?还要考虑哪些因素呢

[html] 写页面布局时你有考虑过分辨率因素吗&#xff1f;还要考虑哪些因素呢 1.支持的最大和最小分辨率 2.流式布局还是响应式布局个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起…

StreamWriter打开文件报错:”不支持给定路径的格式。“

StreamWriter swnew StreamWriter(path,false,Encoding.Default);这段话出异常&#xff0c;查下来发现文件名中还有:号&#xff0c;把半角的:变成全角的&#xff1a;问题即可解决。 转载于:https://www.cnblogs.com/yanzhenan/archive/2012/02/29/2373511.html

bigdecimal 保留两位小数_一律使用 BigDecimal,避免后患?

你知道的越多&#xff0c;不知道的就越多&#xff0c;业余的像一棵小草&#xff01;你来&#xff0c;我们一起精进&#xff01;你不来&#xff0c;我和你的竞争对手一起精进&#xff01;编辑&#xff1a;业余草zhuanlan.zhihu.com/p/94144867推荐&#xff1a;https://www.xttbl…

tcp 四次挥手_tcp三次握手和四次挥手

SYN&#xff1a;一个很小的包&#xff0c;tcp的第一个包&#xff08;同步序列编号&#xff09;ACK:确认响应SYN、ACK:为1表示确认连接FIN表示关闭连接&#xff0c;PSH表示有 DATA数据传输&#xff0c;RST表示连接重置。Acknowledge number(ack)&#xff1a;确认号&#xff0c;大…

ssh登录服务器提示错误no hostkey alg

ssh登录服务器提示错误no hostkey alg ssh root192.168.1.100 -vvv提示失败&#xff1a;no hostkey alg 登录到192.168.1.100服务器 rm -rf /etc/ssh/ssh*key systemctl restart sshd #我还是移走了&#xff0c;没有删除。因为之前安装了telnet服务&#xff0c;因此不用担心连…

[html] 打印页面时怎样自定义打印页眉页脚或者去掉眉页脚?

[html] 打印页面时怎样自定义打印页眉页脚或者去掉眉页脚&#xff1f; <style type"text/css" media"print"> page { size: auto; /* auto is the initial value / margin: 0mm; / this affects the margin in the printer settings */ } </styl…

sqlite 的几点见解

这几天接触了sqlite数据库&#xff0c;开始不上手感觉太变态连DataTime数据类型的都不能返回一个DataSet。 但是在网上查了几天后才发现其实sqlite还是很容易上手的。 我说几点我预到的问题&#xff1a; 1&#xff0c;字段的自增我们在sqlite中的字段自增是把数据类型设为integ…

python正则匹配字符串中的数字_Python正则表达式匹配字符串中的数字

1.使用“\d”匹配全数字代码&#xff1a;import rezen "Arizona 479, 501, 870. Carlifornia 209, 213, 650."m re.findall("\d", zen)print(m)结果&#xff1a;[479, 501, 870, 209, 213, 650]但是上述这种方式也会引入非纯数据&#xff0c;例子如下&am…

node.js之文件读写模块,配合递归函数遍历文件夹和其中的文件

fs.stat会返回文件夹会文件的属性var fs require(fs); var wenwa function (pathname,callback) {fs.stat(pathname,function (err,data) {if(err) throw err;else{if(data.isDirectory()){var wenheichouwa function (callback){fs.readdir(pathname,function (err,fileor…

ms查约束具体代码_ECCV 2020附代码论文合集(CNN,图像分割)

ECCV 2020 共接受 1361 篇论文&#xff0c;涵盖了包括目标检测&#xff0c;语义分割&#xff0c;图像分类&#xff0c;点云&#xff0c;图像重建&#xff0c;神经网络模型等热门主题。对计算机视觉感兴趣的小伙伴们也许你们已经阅读完论文并对论文的内容跃跃欲试了吧&#xff0…

[html] 如何设置打印尺寸?

[html] 如何设置打印尺寸&#xff1f; media print { ... }个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

路径规划算法_自动驾驶汽车路径规划算法浅析

自动驾驶汽车的路径规划算法最早源于机器人的路径规划研究&#xff0c;但是就工况而言却比机器人的路径规划复杂得多&#xff0c;自动驾驶车辆需要考虑车速、道路的附着情况、车辆最小转弯半径、外界天气环境等因素。本文将为大家介绍四种常用的路径规划算法&#xff0c;分别是…

【转载】interpolation(插值)和 extrapolation(外推)的区别

根据已有数据以及模型&#xff08;函数&#xff09;预测未知区域的函数值&#xff0c;预测的点在已有数据范围内就是interpolation&#xff08;插值&#xff09;&#xff0c; 范围外就是extrapolation&#xff08;外推&#xff09;。 The Difference Between Extrapolation and…

vue computed使用_vue computed正确使用方式

最近面试中&#xff0c;遇到一个小伙子&#xff0c;谈到了vue中的 computed 和 watch 区别&#xff0c;最后得到了一个让我瞠目结舌的答案&#xff0c;只用 watch&#xff0c;从不用 computed 模板内的表达式非常便利&#xff0c;但是设计它们的初衷是用于简单运算的。在模板中…