【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混合得到吗,可以通过混合得到,但是黑色便宜

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

相机图像质量研究(11)常见问题总结:光学结构对成像的影响--像差

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结:光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结:光学结构对成…

算法学习——LeetCode力扣字符串篇

算法学习——LeetCode力扣字符串篇 344. 反转字符串 344. 反转字符串 - 力扣(LeetCode) 描述 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须原地…

每日五道java面试题之java基础篇(四)

第一题. 访问修饰符 public、private、protected、以及不写(默认)时的区别? Java 中,可以使⽤访问控制符来保护对类、变量、⽅法和构造⽅法的访问。Java ⽀持 4 种不同的访问权限。 default (即默认,什么也不写&…

腾讯云4核8g10M轻量服务器能承受多少人在线访问?

腾讯云轻量4核8G12M轻量应用服务器支持多少人同时在线?通用型-4核8G-180G-2000G,2000GB月流量,系统盘为180GB SSD盘,12M公网带宽,下载速度峰值为1536KB/s,即1.5M/秒,假设网站内页平均大小为60KB…

七、滚动条操作——调整图像对比度

对比度调整:是在原来图像基础上进行相应的公式调整,是类似乘法操作,本身像数值越大,对比度增加之后其与低像素点值差距越大,导致对比增强 项目最终效果:通过滚动条trackbar来实现调整图片亮度的功能 我这里…

单片机与外设的交互

单片机与外设的交互是嵌入式系统中非常重要的一个基础知识点。单片机是一个集成在同一芯片上的中央处理器、存储器和输入/输出接口,它可以根据用户编写的程序与各种外部设备即外设进行交互。单片机与外设之间的交互主要通过单片机上的输入/输出口(I/O口)来实现。 I/O口的工作原…

(坑点!!!)给定n条过原点的直线和m条抛物线(y=ax^2+bx+c,a>0),对于每一条抛物线,是否存在一条直线与它没有交点,若有,输出直线斜率

题目 思路: 1、区间端点可能是小数的时候,不能直接利用加减1将 < 转化为 <=,例如,x < 1.5 不等价于 x <= 2.5 2、该题中k在(b - sqrt(4 * a * c), b + sqrt(4 * a * c) 中,注意是开区间,那么可以将左端点向上取整,右端点向下取整,即sqrt(4 * a * c)向下取…

超维机器人年终总结大事记回顾

2023年&#xff0c;对于超维机器人来说&#xff0c;是充满挑战和机遇的一年。在这一年里&#xff0c;我们攻坚克难&#xff0c;持续创新&#xff0c;深度聚焦智能巡检机器人的发展&#xff0c;加强合作伙伴关系&#xff0c;不断优化产品和服务&#xff0c;不断提升客户体验&…

[NSSCTF]-Web:[SWPUCTF 2021 新生赛]easy_sql解析

查看网页 有提示&#xff0c;参数是wllm&#xff0c;并且要我们输入点东西 所以&#xff0c;我们尝试以get方式传入 有回显&#xff0c;但似乎没啥用 从上图看应该是字符型漏洞&#xff0c;单引号字符注入 先查看字段数 /?wllm2order by 3-- 没回显 报错了&#xff0c;说明…

初识String类和String类的拓展

前言&#xff1a;以下是Java中String类的知识点与一些常见问题和注意事项&#xff0c;如有讲解不妥&#xff0c;请见谅&#xff01; 目录 1.String类的创建及常见API &#xff08;1&#xff09;String类的四种创建方式&#xff1a; 补充&#xff1a;字符串转化成字符数组 / …

MTK 多帧算法集成实现流程

和你一起终身学习&#xff0c;这里是程序员Android 经典好文推荐&#xff0c;通过阅读本文&#xff0c;您将收获以下知识点: 一、选择feature和配置feature table二、 挂载算法三、自定义metadata四、APP调用算法五、结语 一、选择feature和配置feature table 1.1 选择feature …

C++入门篇(4)—— 类与对象(1)

目录 1.类的引入 2.类的定义 3.类的访问限定符 4.类的作用域 5. 类对象的存储方式 6. this指针 6.1 this指针的引入 6.2 this指针的特性 6.3有意思的面试题 1.类的引入 C语言struct 结构体中只能定义变量&#xff0c;而C中可以定义函数。 struct Date {void Init(int…

Go语言每日一练——链表篇(八)

传送门 牛客面试笔试必刷101题 ----------------两个链表的第一个公共结点 题目以及解析 题目 解题代码及解析 解析 这一道题使用的还是双指针算法&#xff0c;我们先求出两个链表的长度差n&#xff0c;然后定义快慢指针&#xff0c;让快指针先走n步&#xff0c;最后快慢指…

IntelliScraper 更新 --可自定义最大输出和相似度 支持Html的内容相似度匹配

场景 之前我们在使用IntelliScraper 初代版本的时候&#xff0c;不少人和我反馈一个问题&#xff0c;那就是最大输出结果只有50个&#xff0c;而且还带有html内容&#xff0c;不支持自动化&#xff0c;我声明一下&#xff0c;自动化目前不会支持&#xff0c;以后也不会支持&am…

02 数据库管理 数据表管理

文章目录 数据库管理数据表管理基础数据类型表的基本操作 数据库管理 查看已有库 show databases; 创建库 create database 库名 [character set utf8]; e.g. 创建stu数据库&#xff0c;编码为utf8 create database stu character set utf8; create database stu charsetutf8;…

第二十七回 武松威镇安平寨 施恩义夺快活林-人人爱用的Python编程语言

张青提议武松不要去牢城营受苦&#xff0c;可以把公差杀掉然后去二龙山入伙鲁智深。武松却坚持他的道义原则&#xff0c;不愿意伤害一路上照顾他的两位公人。张青尊重他的决定&#xff0c;救醒了两位公人。 张青、孙二娘和武松以及两位公人一起喝酒吃饭&#xff0c;张青还向武…

python+django高校教务选课成绩系统v0143

系统主要实现了以下功能模块&#xff1a; 本课题使用Python语言进行开发。基于web,代码层面的操作主要在PyCharm中进行&#xff0c;将系统所使用到的表以及数据存储到MySQL数据库中 使用说明 使用Navicat或者其它工具&#xff0c;在mysql中创建对应名称的数据库&#xff0c;并…

leetcode:51.N皇后

起初会想到暴力&#xff0c;但是N不确定&#xff0c;所以不确定for的嵌套层数&#xff0c;所以我们采用回溯算法。 树形结构&#xff1a; 1.树的深度是第depth层 2.树的宽度是对每一行进行遍历 代码实现&#xff1a; 1.result是三维数组&#xff0c;一个棋盘是二维&#x…

KAJIMA CORPORATION CONTEST 2024(AtCoder Beginner Contest 340)ABCDEF 视频讲解

这场比较郁闷&#xff0c;C题短路&#xff0c;连续4次WA&#xff0c;导致罚时太多 A - Arithmetic Progression Problem Statement Print an arithmetic sequence with first term A A A, last term B B B, and common difference D D D. You are only given inputs for w…

蓝桥杯官网练习题(翻转)

问题描述 小蓝用黑白棋的 n 个棋子排成了一行&#xff0c;他在脑海里想象出了一个长度为 n 的 01 串 T&#xff0c;他发现如果把黑棋当做 1&#xff0c;白棋当做 0&#xff0c;这一行棋子也是一个长度为 n 的 01 串 S。 小蓝决定&#xff0c;如果在 S 中发现一个棋子…