【反射率】-- Lab 转换(excel)

系列文章目录

文章目录


前言

一、CIE

1.CIE 简介

CIE是由国际照明工程领域中光源制造、照明设计和光辐射计量测量机构组成的多学科世界性学术组织;

CIE标准色度系统源于颜色匹配实验,规定了一套包括标准基色、标准观察者、颜色匹配以及颜色匹配函数标准。标准观察者是指普通人眼对颜色的响应,代表普通人眼平均水平。根据现场的大小,分别有1931年2度标准观察者和1964年增补的10度标准观察者,无特别声明,CIE一般假设为2度标准观察者;

2.cie 1931标准色度匹配函数数据

CIE 1931标准的色度匹配函数是一种用于描述人眼对不同波长光的感知情况的数学模型。该模型由国际照明委员会CIE在1931年制定的,是世界上最早也是最广泛应用的色度匹配函数之一。

CIE1931标准的色度匹配函数数据以XYZ三个函数表示,分别代表人眼对三种不同波长光的感知情况。其中,X函数描述了人眼对红光的感知,Y函数描述了人眼对绿光的感知,Z函数描述了人眼对蓝光的感知。这三个函数的数值都是以波长为自变量,以相对感知度为因变量来表示;

具体的色度匹配函数数据可以通过数学表达式或数据表展示:

以上数据表示了在可见光谱范围内,人眼对不同波长光的相对感知度;

色度匹配函数的数据可以用于计算不同光源的光谱功率分布与人眼感知到的颜色之间的关系。通过将光源的光谱功率与色度匹配函数进行数学运算得到三个通道的刺激值XYZ,再通过颜色空间的转换可以得到颜色的坐标值、亮度值等信息;

3.从CIE1931RGB到CIE1931 XYZ

1931年国际照明委员会综合了不同实验者的结果,得到了RGB颜色匹配函数,横坐标表示光谱波长,纵坐标表示用以匹配光谱各色所需要三基色刺激值,这些值是以等能量白光为标准的系数,是观察者实验结果的平均值,为了匹配在438nm和546.1nm之间的光谱色,出现了负值,这就意味着匹配这段里的光谱色时,混合颜色需要使用补色才能匹配。虽然使用正值提供的色域还是比较宽的,但是像用RGB相加混色原理的CRT虽然可以表示大多数颜色,但不能显示所有颜色;

CIE1931 GRB使用红、绿、蓝三基色系统匹配某些可见光谱颜色时,需要使用基色的负值,不仅不容易理解,使用也不方便。由于任何一种基色系统都可以从一种系统转换为另一种系统。因此人们可以选择想要的基色系统,以避免出现负值。1931年国际照明委员会采用了一种新的颜色系统,叫CIE XYZ系统。这个系统采用想象的XYZ三种基色;

  1. 所有的XYZ值都是正的,匹配光谱颜色时不用负值基色;
  2. 用Y值表示人眼对亮度的响应;

CIE 1931 XYZ采用三个假想的三原色XYZ,由CIE 1931-RGB系统推导,得到匹配等能光谱得到颜色匹配函数,称为CIE 1931 标准色度系统,也称为2度视场XYZ色度系统,适合人眼观察视角1-4度;

二、Lab颜色空间的理解

CIE Lab是一个在国际标准下感知统一的颜色空间。人眼感知到的颜色差和在CIE Lab颜色空间利用欧几里得距离测量得到的颜色差是一样的。尽管颜色空间叫做CIE Lab颜色空间,但是它的坐标是由L a b确定的,其中L表示亮度也就是图像的灰度信息,a表示从红色到绿色的范围,b表示从黄色到蓝色的范围。

CIE Lab空间是基于1931年CIE提出的颜色匹配函数中推导出的XYZ三元色定义的。CIE Lab的优点是色域比较宽,不仅包含了RGB中的所有颜色,还包含了RGB不能表示的颜色;

1.Lab色差公式怎么计算色差

采用最广泛使用的测量物体色调的CIE1976 La b色度系统,借助均匀色的立体表示方法将所有的颜色用坐标表示。

总色差:

CIE 1976 Lab空间可由CIE XYZ转换得到。视网膜椎体细胞有三种不同响应的视觉神经,颜色感觉是由各个视觉神经的破坏和恢复而产生的。每发生一次恢复和破坏,就发生一次脉冲信号;

式中,Xn,Yn,Zn为CIE标准照明体照射在完全漫反射体上,经反射到观察者眼中的三刺激值。对于标准A光源,Xn,Yn,Zn分别取109.8472、100、35.5824.

三、D65光源Lab计算

1、测试反射率数据

2、提取间隔每5nm的值

3、代入色度匹配函数,其中上中下对应间隔为5nm的反射率值

4、计算:

python 复制代码
cells(14,"L")=SUMPRODUCT(C13:C93,$F$13:$F$93,$G$13:$G$93)
cells(14."M")=SUMPRODUCT(D13:D93,$F$13:$F$93,$G$13:$G$93)
cells(14,"N")=SUMPRODUCT(E13:E93,$F$13:$F$93,$G$13:$G$93)
cells(14,"O")=SUMPRODUCT(E13:E93,$F$13:$F$93,$H$13:$H$93)
cells(14,"P")=SUMPRODUCT(F13:F93,$E$13:$E$93,$I$13:$I$93)
cells(16,"L")=M14/(SUMPRODUCT(D13:D93,F13:F93))
cells(16,"M")=L14/SUM(L14:N14)
cells(16,"N")=M14/SUM(L14:N14)
cells(18,"L")=M16*(L16/N16)
cells(18,"M")=L16
cells(18,"N")=(1-M16-N16)*(L16/N16)
cells(20,"L")=IF(M21>Q21,(116*(M18/M22)^(1/3))-16,116*(1/3*(29/6)^2*(M18/M22)+(4/29))-16)
cells(20,"M")=(IF(L21>Q21,((L18/L22)^(1/3)),(1/3*(29/6)^2*(L18/L22)+(4/29)))-IF(M21>Q21,((M18/M22)^(1/3)),(1/3*(29/6)^2*(M18/M22)+(4/29))))*500
cells(20,"N")=(IF(M21>Q21,((M18/M22)^(1/3)),(1/3*(29/6)^2*(M18/M22)+(4/29)))-IF(N21>Q21,((N18/N22)^(1/3)),(1/3*(29/6)^2*(N18/N22)+(4/29))))*200
cells(21,"L")=L18/L22
cells(21,"M")=M18/M22
cells(21,"N")=N18/N22

总结

分享:

越是看起来糟糕透顶的事,越是蕴含了巨大的生机,伴随着奇妙的感受一同而来的还有难以言说的对生命本身的感动,这样的感触让正在变得坚强的我们,再次由内而外的成长起来;

相关推荐
热心市民运维小孙12 小时前
Ubuntu重命名默认账户
linux·ubuntu·excel
又蓝20 小时前
使用 Python 操作 Excel 表格
开发语言·python·excel
m0_748230941 天前
Rust赋能前端: 纯血前端将 Table 导出 Excel
前端·rust·excel
Swift社区1 天前
Excel 列名称转换问题 Swift 解答
开发语言·excel·swift
neeef_se1 天前
Vue中使用a标签下载静态资源文件(比如excel、pdf等),纯前端操作
前端·vue.js·excel
℘团子এ1 天前
js和html中,将Excel文件渲染在页面上
javascript·html·excel
菠萝蚊鸭1 天前
Dhatim FastExcel 读写 Excel 文件
java·excel·fastexcel
一只小灿灿1 天前
VB.NET在 Excel 二次开发中的全面应用
.net·excel
是小崔啊2 天前
开源轮子 - EasyExcel01(核心api)
java·开发语言·开源·excel·阿里巴巴
Excel_easy2 天前
批量识别工作表中二维码信息-Excel易用宝
excel·wps