【GAMES101】Lecture 20 颜色

目录

光 

颜色

加色系统

CIE RGB颜色匹配实验

颜色空间

CIE XYZ颜色空间

HSV颜色空间(Hue-Saturation-Value)

 CIELAB空间

减色系统:CMYK


光 

光是由不同波长的光波组成的,其中可见光的波长范围在400nm到700nm

用谱功率密度(Spectral Power Distribution ),SPD来描述光在不同波长的分布,就是光源在不同波长的功率分布

而这个光谱功率的分布具有线性可加性

颜色

颜色是人类感知的一种现象,它不是光的普遍性质,不同波长的光并不是颜色,我们先来研究一下眼睛的结构,瞳孔是光圈,晶状体是透镜,这个视网膜就是传感器

视网膜上有两种感光细胞,杆细胞(Rods)和锥细胞(Cones),比较多的是杆细胞,它是感受光的亮度的,少一点的是锥细胞,它是感受颜色的

有三种类型的锥细胞:S、M和L(对应于短波、中波和长波的峰值响应),然后它们分别对于不同波长的光有着不一样的反应强度

不同人的这三种锥细胞分布数量差别比较大

那对于照进眼睛的光这三种锥细胞就会有不同的反应强度,那么光在不同波长上有不同的强度分布,锥细胞对于不同波长的光也会有不同的反应强度,所以每种锥细胞感知到的强度就是这两个分布函数的乘积在波长上的积分

所以我们能够感受到的就是这三个SML的值,这就是我们感受到的颜色,而不是能够直接从光里面看到颜色,颜色本身是我们大脑的一种感受

因为这个SML的值是通过两个函数乘积积分得到的,因此就存在说这两个光的SPD光谱不一样,但是积分的结果是一样的,也就是说我们虽然看到的颜色是一样的,但是呢,它们可能是不同的光,因此就可以通过调节光谱来呈现出一样的效果,尽管它们可能不是同样的光

加色系统

也就是说颜色可以通过混合不同的颜色得到,计算机里面用的是加色系统,也就是用RGB三原色通过调整它们的三个的大小来混合出不同的颜色,并用它们各自的参数大小(R,G,B)来表示

CIE RGB颜色匹配实验

CIE是个组织,他们做了个实验,用RGB三种单色光通过调整它们之间的强度来混合达到400-700波长光相同的颜色效果

最后就会得到一个颜色匹配函数,上面对应了某个波长的光需要用多少RGB来达到相同的颜色效果,因此对于某个光谱的光,想要知道这个光的颜色效果,就将两个函数乘积求积分的结果就行了

颜色空间

CIE XYZ颜色空间

CIE还是那个组织,CIE XYZ是科学研究里面常用的颜色空间,同样有一个颜色匹配函数,但是这个函数是人造的,并不是实验测出来的,并且呢之前那个颜色匹配函数里面的R是存在负数的,这里都是正数,但是同样可以通过不同的x、y、z来模拟不同波长光的效果,这里的Y是亮度

通过归一化让x+y+z=1,在二维上只显示x和y来把整个颜色空间显示在二维上

这个二维的图就是色域,就是可以表示的颜色的集合,CIE XYZ颜色空间用的是加色系统,中间的白点是混合的,往三个点走就越纯

而标准RGB颜色空间(sRGB)无法表示所有的颜色

HSV颜色空间(Hue-Saturation-Value)

HSV是常用的颜色拾取器,就是用来调颜色的,Hue是色调,就是简单的颜色,而Saturation是饱和度,就是调节这个颜色的浓淡,在白色和原色之间的一个范围,Lightness (or value)就是亮度

 CIELAB空间

这个CIE还是那个CIE,它用的是三个轴来表示颜色,就是L a b这三个轴,这三个轴的两端都是互补色,这个L是亮度,互补色是白色和黑色,a是红色和绿色,b是蓝色和黄色

这个黑白互补可以理解,但是这个红绿和蓝黄怎么就互补了,还是那个道理,就是颜色是人的感受

如果你盯着一个东西盯久了,突然切换画面,眼前就会出现互补色

还有视觉是相对的,像这个A和B看起来是不一样的

但实际上它们两个是一样的

离谱但真实存在

减色系统:CMYK

什么是减色系统呢,就好像颜料一样,这个不同的颜色越混合就越渐近黑色,这个C是蓝绿色(Cyan),这个M是品红色(Magenta),Y就是黄色,K是黑色,那为什么我有了CMY还要一个黑色,不可以通过CMY混合得到吗,可以通过混合得到,但是黑色便宜

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

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

相关文章

2024.2.5 作业

1.请编程实现哈希表的创建存储数组{12,24,234,234,23,234,23},输入key查找的值&#xff0c;实现查找功能 #include<stdio.h> #include<string.h> #include<stdlib.h> #include<math.h> typedef int datatype; typedef struct Node {datatype data;str…

【机器学习】支持向量机(SVM)

支持向量机&#xff08;SVM&#xff09; 1 背景信息 分类算法回顾 决策树 样本的属性非数值 目标函数是离散的 贝叶斯学习 样本的属性可以是数值或非数值目标函数是连续的&#xff08;概率&#xff09; K-近邻 样本是空间&#xff08;例如欧氏空间&#xff09;中的点目标函…

文生图提示词:情感表达

情感和氛围 --情感表达 Emotional Expression 尝试捕捉人类情感的广泛性和复杂性&#xff0c;展示了在讨论和创作艺术作品时可以使用的丰富情感词汇。 Joyful 欢乐的 Sad 悲伤的 Angry 愤怒的 Peaceful 平和的 Excited 兴奋的 Calm 平静的 Melancholic 忧郁的 Hopeful 有希望的…

73. 矩阵置零(Java)

目录 题目描述&#xff1a;输入&#xff1a;输出&#xff1a;代码实现&#xff1a; 题目描述&#xff1a; 给定一个 m x n 的矩阵&#xff0c;如果一个元素为 0 &#xff0c;则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 输入&#xff1a; matrix [[1,1,1],[1,0,…

【开源】SpringBoot框架开发个人健康管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 健康档案模块2.2 体检档案模块2.3 健康咨询模块 三、系统展示四、核心代码4.1 查询健康档案4.2 新增健康档案4.3 查询体检档案4.4 新增体检档案4.5 新增健康咨询 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpri…

Elasticsearch:使用查询规则(query rules)进行搜索

在之前的文章 “Elasticsearch 8.10 中引入查询规则 - query rules”&#xff0c;我们详述了如何使用 query rules 来进行搜索。这个交互式笔记本将向你介绍如何使用官方 Elasticsearch Python 客户端来使用查询规则。 你将使用 query rules API 将查询规则存储在 Elasticsearc…

Depth Anything放入MVS中?

这是Depth Anything的深度值depth&#xff0c;这个depth通过depth depth_anything(image)求得。 但想要把这个深度值depth嵌入到三维重建算法框架中&#xff0c;并不是一件容易得事情&#xff0c;拿OpenMVS举例&#xff0c;下图是OpenMVS输出深度图的函数。 OpenMVS的深度值保…

3D打印新突破!2024年第二篇Science研究!

2024年3D打印技术领域第二篇Science文章于2月8日发表。 来自澳大利亚昆士兰大学&#xff08;Jingqi Zhang等&#xff09;、重庆大学&#xff08;Ziyong Hou 、Xiaoxu Huang&#xff09;、丹麦技术大学的联合团队发表了题为“Ultrauniform, strong, and ductile 3D-printed tita…

[office] Excel表格中自动添加的超连接怎么取消? #媒体#其他#知识分享

Excel表格中自动添加的超连接怎么取消&#xff1f; Excel表格中自动添加的连接怎么取消&#xff1f;有时候在Excel2013中输入网址或邮箱时会自动添加超连接&#xff0c;本质上这是很人性化的功能&#xff0c;可是对很多人来说可能用不到&#xff0c;而且很繁琐&#xff0c;下面…

请问半吊子 C++选手该如何深入学习 C++?

请问半吊子 C选手该如何深入学习 C? 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「C的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff0…

【Linux】学习-基础IO拓展篇

Linux基础IO拓展篇—详解文件系统 理解文件系统 在Linux基础IO篇中&#xff0c;我们站在用户的视角对文件进行了理解&#xff0c;主要是针对被打开的文件&#xff0c;那么有没有没有被打开的文件呢&#xff1f;当然有&#xff01;今天我们换个视角&#xff0c;来站在系统的角…

【python5】闭包/装饰器,

文章目录 1.闭包和装饰器&#xff1a;函数里return就是闭包2.解析eeprom&#xff1a;如下是二进制文件&#xff0c;C8是一个字节3.json/configparser/optparse&#xff1a;json.dumps&#xff08;将字典转化为字符串&#xff0c;将json信息写进文件&#xff09;&#xff0c;jso…