当前位置:网站首页>【TA-霜狼_may-《百人计划》】2.1 色彩空间
【TA-霜狼_may-《百人计划》】2.1 色彩空间
2022-07-01 03:24:00 【zczplus】
【TA-霜狼_may-《百人计划》】2.1 色彩空间
–
如何描述色彩
设计岗位的悲催
色彩发送器
色彩认知:
光源是出生点,光源发射出光线,光线通过直射、反射、折射等路径最终进入人眼。
但人眼接收到光线后,人眼的细胞差生了一系列的化学反应。
由此把产生的信号传入大脑,最终大脑对颜色产生了认知感知。
2.1.1 光的要素

光源
光源就是产生光的物体。
波长
波长在理论上是无限大的,只是我们人眼可见光是有局限的。
能量分布
光线作为一种真实存在的物质,是具有能量的,其能量单位就是焦耳,我们认知的光就有不同的能量。一束光可以由多个不同波长的光进行合并。
分光光度计
分光光度计用于描述光线的具体能量强度,通过分光光度计我们得知,光线能量主要集中在550nm附近,(对应的颜色为绿色)
由此我们可以知道:
- 混合波长组成光线,拆分光线则形成单一波长光
- 能量的主要集中范围

光的传播
光经过反射,一部分能量被吸收。
通过能量分布图分析可得:物体吸收光的能量大部分在600nm左右,也就是说物体吸收的光是黄色和绿色的光。
2.1.2 相对亮度感知
黑暗环境点亮一盏灯和明亮环境下点亮一千盏灯的效果完全不同,人眼对亮度的认知相当于从0到1再从1到10。
人眼HDR
人眼既可以分辨出高亮度的云彩的不同层次区别,又可以分辨出阴影中不同物体的异同。但是人眼不能保证两种功能同时生效。
人眼感光细胞分布
对人眼感知色彩的细胞进行简单的划分,分为杆状细胞和椎状细胞
杆状下包负责感知亮度,椎状细胞负责感知色彩;前者对亮度特别的敏感,只要有5~14个光子达到杆状细胞就会产生神经信号,这也可以解释为什么闪光弹能致盲,强光直接干涉了人眼最敏感的感光细胞。
椎状细胞
这种细胞专门用于感知颜色,但是他们被进一步细分为L细胞,M细胞,S细胞。三种细胞负责感知的波长不一,如图所示,L感知红色区间,M感知绿色区间,S感知蓝色区间。
LMS 对应 RGB
人眼的本质
人眼的本质就是光源的接收者。他的作用就是接收外部光线输入,输出神经电信号进入大脑。
人眼接收光线的微积分公式

- C值是人眼这个函数输出的神经电信号
- S(λ)表示LMS这三个感官细胞的感知分布
- I(λ)表示光源的功率谱分布
- R(λ)表示反射物体的吸收功率分布
2.1.3 色彩空间的历史
在19世纪提出多种猜想,主流包括以下三种:
- 人眼有100多种感受颜色的细胞
- 人眼有三种分别用于感受RGB的感色细胞
- 人眼有三种感色细胞,分别是黑白,红绿,黄蓝感色细胞。
Munsell 色彩系统
Munsell通过色卡来描述色彩,旋转角度代表色相,垂直方向代表亮度,由圆心向外表示Munsell饱和度。
CIE 1931 RGB Color Specification System

一个过渡
XYZ Color Specification System

这里的RGB是上一坐标中的值,由此可得色域马蹄图
在此基础上,再将Y(亮度)引入该坐标系,从而组成Yxy色彩空间。
仍然存在诸多不足,二维的马蹄图色彩分布不均匀,于是期望一个更均匀的色彩空间。
2.1.4自定义色彩空间
- 色域(三个基色的坐标,由此形成三角形)
- Gamma(如何对三角形内进行切分)
- 白点(色域三角形的中间点)
Gamma
对色彩进行采样的一种方式。
当gamma =1时,相当于线性切割,方便计算,计算机效率高,方便理解:

但是当计算机储存和显示器硬件还不发达的年代,采用的gamma大多为2.2,如图:
2.1.5 常用色彩空间
色彩模型:使用一定规则描述或排列颜色的方法
举例:RGB、CMYK、LAB
色彩空间:至少满足三个指标:色域、白点、gamma
举例:CIE XYZ、Adobe RGB、sRGB、Japan Color 2001 Uncoated,US web Coated(后两者是基于CMYK模型建立的)
总结
色彩空间是什么?
色彩空间包含三个基本要素:色域、白点、gamma,定义了颜色的范围。
人眼可见光范围是多少?
看图在400nm-700nm之间,百度后结果为312nm至1050nm之间都为人眼可见光波段。平常可见光波段指的是:380nm至780nm。
边栏推荐
- Keil5中如何做到 0 Error(s), 0 Warning(s).
- 深度学习中的随机种子torch.manual_seed(number)、torch.cuda.manual_seed(number)
- Feature Pyramid Networks for Object Detection论文理解
- Test function in pychram
- Data exchange JSON
- 【EI会议】2022年第三届纳米材料与纳米技术国际会议(NanoMT 2022)
- 241. 为运算表达式设计优先级
- The difference between MFC for static libraries and MFC for shared libraries
- Valid brackets (force deduction 20)
- Edge drawing: a combined real-time edge and segment detector
猜你喜欢

Test function in pychram
![[深度学习]激活函数(Sigmoid等)、前向传播、反向传播和梯度优化;optimizer.zero_grad(), loss.backward(), optimizer.step()的作用及原理](/img/9f/187ca83be1b88630a6c6fbfb0620ed.png)
[深度学习]激活函数(Sigmoid等)、前向传播、反向传播和梯度优化;optimizer.zero_grad(), loss.backward(), optimizer.step()的作用及原理

FCN full Convolution Network Understanding and Code Implementation (from pytorch Official Implementation)

Cookie&Session

5、【WebGIS实战】软件操作篇——服务发布及权限管理
![5. [WebGIS practice] software operation - service release and permission management](/img/5d/070e207bd96e60ba1846d644d4fb54.png)
5. [WebGIS practice] software operation - service release and permission management

Sort linked list (merge sort)

Gorilla/mux framework (RK boot): RPC error code design

在线公网安备案保姆级教程【伸手党福利】

Blueprism registration, download and install -rpa Chapter 1
随机推荐
Thread data sharing and security -threadlocal
Edlines: a real time line segment detector with a false detection control
shell脚本使用两个横杠接收外部参数
How to achieve 0 error (s) and 0 warning (s) in keil5
Pytorch training deep learning network settings CUDA specified GPU visible
The difference between MFC for static libraries and MFC for shared libraries
Ridge regression and lasso regression
Processing of menu buttons on the left and contents on the right of the background system page, and double scrolling appears on the background system page
The shell script uses two bars to receive external parameters
ECMAScript 6.0
【快捷键】
串口接收数据方案设计
LeetCode 31下一个排列、LeetCode 64最小路径和、LeetCode 62不同路径、LeetCode 78子集、LeetCode 33搜索旋转排序数组(修改二分法)
详解Spark运行模式(local+standalone+yarn)
Leetcode: offer 59 - I. maximum value of sliding window
bootsrap中的栅格系统
Valid brackets (force deduction 20)
Jeecgboot output log, how to use @slf4j
Unexpected token o in JSON at position 1 ,JSON解析问题
[party benefits] jsonobject to string, leave blank