颜色的前世今生21·Lab编码系统
作者:互联网
Lab,是所有拾色器里最让人发晕的。
看起来好高大上啊,不知道该怎么下嘴啊有木有?!
很!正!常!
Lab是一种完全不直观的颜色空间!并且,Lab还很年轻,1976年才诞生,进入大众视野的时间就更加短暂。
前一篇我们已经介绍了,Lab是建立在人眼对颜色的二次编码原理上的,即:
1. 第一阶段:人眼里的RGB视觉细胞识别RGB信号;
2. 第二阶段:神经网络对RGB信号重新编码,形成黑-白,红-绿,黄-蓝三个新通道的信号,供大脑进行颜色识别;
3. 其中,黑-白通道被命名为L通道,取值范围:0~255;
4. 红-绿通道命名为a通道,取值范围-127~128;
5. 黄-蓝通道命名为b通道,取值范围-127~128;
直观一点看,Lab颜色空间是一个球形,见下图。
为了方便描述,把它视为一个地球仪。那么南极点就是最暗的黑色,北极点就是最亮的白色。亮度L沿着南极到北极的轴心线,从暗到亮变化。
沿着赤道把地球仪切开,切出来的圆就是色域最大、饱和度最高的颜色。
a轴和b轴分别是红-绿色和黄-蓝色。
A为正值的时候,是红色。B为正值的时候为黄色。
这样,一个圆形就被分为四个象限。第一象限是红色和黄色的过渡,第二象限是黄色和绿色的过渡。以此类推。
如果用极坐标的角度来看的话,色调就随着极角H的变化而变化,饱和度就随着极径C的变大而变大(这就是在Lab的基础上演变来的LCH色空间)。
当a和b为0的时候,就是理论上的中性灰。所谓中性灰,就意味着这个灰色既不偏黄,也不偏蓝,既不偏红,也不偏绿。
从图上可以看到,a、b通道的绝对值越大,颜色的饱和度就越大。越靠近中点,颜色饱和度越小,越接近灰色。并且,真正的中性灰其实范围是很小的,大量的灰色都是所谓的暖灰、冷灰等非中性灰(带一点颜色的灰色)。
在PS里,Lab色空间还有一些有趣的特点。
比如,在PS里用Lab的通道来观察图像,一幅图像如果是黑白的,那么a,b通道的数值就全是0。在通道界面里面,就完全是一片干干净净的灰色,没有内容。只有L通道是有图像的。
图片来自网络。处理了一下,原图是彩色的。
在a通道下查看,图像“消失”了。
同时,在a通道界面下,红色越鲜艳,图像越白。绿色越鲜艳,图像越黑。b通道以此类推。
这个特性很有意思,它可以有助于我们对图像的颜色进行观察和分析,方便我们修色。
而这也是上一章提到的一键“秋天变夏天”的秘密,因为简单的“反相”操作就可以使红色变绿色,让金黄色的叶子变成绿色。
另外需要特别注意的是,RGB的纯红色和纯绿色,并不完全等同于a通道的红色和绿色。Lab里面的红色更接近洋红,绿色更接近青色。也就是说,Lab里面的红色和绿色不是特别“正”。Lab里面的黄色和蓝色倒是比较“正”的,但它的“纯蓝色”(a: 0, b: -128)也不完全等同于RGB里的纯蓝色(R: 0, G:0, B: 255)。
b为0,而a为127和-128的时候的颜色
并且,L为0的时候,也不完全等同于黑色,一些红色和绿色也可以L为0。
这一点跟HSB略有不同。在HSB色空间里,B为0的时候就一定是黑色了。这是由它们各自不同的坐标算法决定的。
好了,以上,教科书上有的内容都讲完了。
纳尼?!是不是还是没感觉啊?没感觉就对了,有感觉之前,需要有感受。
以下讲讲楼主的个人感受。
Lab色大部分人很陌生。要想不陌生,就得经常用。
怎么用?用来修色,不要用来取色。
实话说,楼主自己从来不用Lab来取色。。。PS取色器里面的Lab色,取色的时候用来参考一下还行,真正用来取色就太不直观了(有没有大神直接用Lab取色的,教教我窍门。。。。
那为什么PS要采用这么样一个不直观的Lab色空间?
个人意见,Lab用来给照片修色、校色(颜色管理)有它独特的优势。
1.关于照片修色:
1)校准色温(b黄-蓝通道);
2)改变季节(a红-绿通道);
3)增加a、b通道的对比度,给一些颜色比较平淡的照片增添“活力”(在Lab模式下修改曲线,可以轻松实现让蓝天更蓝,绿树更绿,红花更红);
更多细节推荐《Photoshop Lab 修色圣典》,很厚很厚一本。。。好吧,我也没看完╮(╯_╰)╭
2.关于校色,也就是所谓的颜色管理。它的目的主要是控制色差。
这个一定要多说两句!里面的玄机一两句话讲不清楚。
Lab作为RGB和CMYK之间的中转站,在颜色管理中起着重要的作用。
要想搞懂颜色管理,就一定要理解Lab的中转站工作原理。因为所谓的颜色管理,落实到具体的操作上,其实就是对Lab色和RGB色、CMYK色之间的映射关系进行管理。
之前我们说了,PS里把RGB色转换为CMYK色的时候,会先把RGB转换为Lab色,再从Lab色转换为CMYK色。反过来,CMYK色转换为RGB色的时候,也会在lab这里过一遍。Lab像一个中间桥梁一样,连接着两个不同的颜色空间。
为啥不直接转?为啥要搞得这么麻烦?
——好了,本篇的重头戏来了!
首先,RGB和CMYK色的色号,其实是一系列对物理系统的操作指令,只对“机器该怎么动”负责,并不对最后的颜色负责。
该怎么理解这句话?
举个极端点的例子,CMYK的(100,0,0,0),意思是青色印满,其他颜色不印,所以应该是饱和度最高的青色。但如果印刷机的油墨上错了,该用C的时候用成了K,那么实际印刷出来的(100,0,0,0)就是黑色而不是青色。而这样的错误,光靠检查CMYK色的色号是检查不出来的。
所以,光知道CMYK的色号,并不能确定最后印出来的颜色是什么样,还取决于印刷机、纸张的状态。RGB色同理。
打个比方,RGB、CMYK色仅仅是菜谱。最后炒出来的菜什么味道,其实跟很多其他因素相关。Lab色,则是给最后端上桌的菜进行评判,按“酸甜苦辣软糯香酥”等等不同方面用仪器进行严格的打分。如果Lab评分一致,菜的味道就一定是一样的。
有时候我开玩笑,把RGB和CMYK色称为“虚”的颜色。而Lab色,则是实实在在的颜色,跟实现的设备无关。它针对自然界所有存在的颜色进行的编码,1就是1,2就是2。知道Lab色的色坐标,就一定能确定到底是什么颜色。
“虚”的颜色,必须落到“实”处,才能进行相互转换。也就是先确定印刷机的状态,把CMYK色在Lab色空间中标注出来。再确定显示器的状态,把RGB色在Lab色空间中标注出来,它们才能相互转换。颜色管理里后缀为ICC的文件,就是规定这个转换关系的特性文件。
当我要发海报给印厂印刷的时候,先要根据我的显示器的状态(色域、Gamma曲线、白点坐标),把我的电脑上的RGB色转换到Lab空间里。再根据印厂的具体情况,确定Lab色和印厂的CMYK色的对应关系,从而找到适合印刷海报的CMYK色。
如果事先没有准备好ICC文件,PS就会找一个默认的标准来用,比如RGB色就采用sRGB标准,CMYK色就采用Japan Color 2001 Coated。
用钱来打个比方!
我们兑换人民币和日元,但是它们自身的购买力是变动的,不同的情况下能买的东西不一样。于是采用购买力固定的美元作为结算中介(嗯,这只是一个比喻!比喻!),把(在特定情况下的)人民币和日元和美元的汇率分别算好,就可以实现人民币和日元的结算了。你可以根据自身设备的情况来定汇率,如果你不定,那就按官方汇率来算。我讲清楚了吗?
那么为什么需要一个Lab这样的中间桥梁呢?
之前介绍显示器色域的时候我说了,严格说来,根本没有色域一模一样的显示器。
不是同一个型号的就更别提了。CMYK也同理,换印厂换纸张调设备,印出来的颜色都不一样。
假设RGB和Lab的对应关系有M种,Lab和CMYK的对应关系有N种。如果RGB和CMYK直接转换,就会产生M*N种组合!计算机表示心好累。。。而如果采用Lab作为中介进行转换,就只需要处理M+N种情况,大大减轻了计算量。
不是很容易理解是吧?吼吼。来举个栗子。
我手上有手机、pad,还有一台笔记本,一台台式机,一共四个不同的显示屏。仔细一看,他们的颜色表现都是不一样的!那么这里M=4。
当我要发图给4个不同的印厂印刷的时候(比如是在报纸上做广告,不同的报纸用的印厂一般都不一样),N=4。
如果RGB和CMYK直接转换,理论上需要用到4*4=16个特性文件。但如果中途用Lab转换一次,就只需要4+4=8个特性文件了。
M和N的数量越大,节约的工作量就越大。
进一步。
当我出广告图给报社,报社跟我交接工作的人很有可能是广告部的,都不知道印厂的门朝哪边开啊!而印厂跟报社交接工作的人,有可能是销售部的,你问他“你家印厂的颜色特性怎么样啊”,他大概会蒙圈。。。所以整个信息传递的链条有可能是相当长的,如果直接RGB转CMYK,需要收集信息的时间和精力成本其实比一般预想的要高。
如果中间加一层Lab中转,工作就轻松多了。因为我并不需要知道印厂的工作状态,只需要干好我自己的事,把RGB到Lab的特性文件准备好就可以了。从Lab到CMYK这一步工作可以由印厂自己管控,理论上哪怕中途换印厂换设备也无所谓。当然,国内目前颜色管理的实际情况是。。。你懂的。。。还是去厂里蹲点靠谱!(实际上,哪怕是不存在色差问题的黑白稿,也最好能蹲点。。。印过同人本的各位大大肯定知道我想吐槽什么。。。)
此其一。
其次,Lab可以标注的颜色,比RGB和CMYK多很多很多很多!
这个“颜色多”,包含两个方面,一是色域大,二是精细度高。
关于色域大。
RGB和CMYK色空间有重叠的部分,也有不重叠的部分。它们相互转换用的中转站,必须比这两个空间都大,才能把它们都装下对不对?
实际上,Lab色空间基于CIE1931XYZ,包括了所有物理上能实现的所有颜色。我们可以把RGB和CMYK的颜色在Lab色空间中标注出来,两者的差异看起来就更直观了:
罕见的3D动图,不知道能不能正常浏览。。。
红色部分是sRGB,小一点的是SWOP(U.S.Web Coated,美式胶印标准),蓝色的点点点是需要校正的颜色。
从图上可以看到,光讨论2维方向的色差是不准确的。2维投影位置一致,不代表明度也一致。
图片来源:颜色管理软件CHROMiX官方网站。
关于精细度高。
Lab色是以实数为坐标的,可以简单的理解为坐标可以精确到无限小数。所以精细度特别高。Lab取色器里取整数的做法,是一种简化。一般来说,Lab色的计算会保留到小数点后两位(大家可以算算这样下来可以标定多少种颜色)。
有什么好处?
依然以钱来做比喻(楼主你是多爱钱?!):
RGB是一个以4毛钱为基本单位的货币系统(4毛?这么怪?没错就是这样任性╮(╯_╰)╭,因为它是二进制的)。
而CMYK是一个以1块钱为基本单位的货币系统。
那它们之间怎么兑换呢?怎么样都不凑整对不对?
Lab系统则是一个以1毛钱为基本单位的货币系统。
所以,先把RGB的钱换算成Lab的钱数,然后找一个最接近的CMYK的钱数,就可以把RGB换算成CMYK了。当然,是舍弃了很多误差的一个近似值,凑合用用也还行。
有学霸同学要问了,上面这些CIE XYZ也能做到,那么为什么要舍弃XYZ系统而采用Lab?
这是因为lab 是一个均匀的(相对而言)色空间。Lab诞生的初衷,就是为了解决xyz色差不均匀的问题。
什么叫色差不均匀?
还是以钱来打比方(对,我就是喜欢钱,哼!):
颜色A和颜色B差了2块钱,A和C相比也差了2块钱。但是C看起来差异却更大。
——色差的数值一样,但主观感受上的差异程度不同,就叫色差不均匀。
这会造成什么问题?
当一个RGB色要往CMYK色转换的时候,如果有两个颜色可选,色差都是2块钱,选哪个?
进一步,有两个CMYK颜色可选,一个差了2块钱,一个差了3块钱,哪个色差更大?
——不知道!选哪个?更不知道!
这简直没法玩儿了有木有?
为了解决这个问题,CIE在CIE XYZ之后,开发了一系列傻傻分不清的表色体系:CIE 1960 UCS,CIE 1964 L*u*v*,CIE 1976 L*a*b*,CIE 2000。
为什么它们名字都这么像?因为它们多多少少都还有些问题,所以还在不停的打补丁升级中(类似于Windows XP、Windows 8、Windows 10)。。。实际上,直到现在,这个完善工作都还没有完全做完!完美的颜色系统还不存在!
PS:以上的功能,用其他的CIE均匀色空间也是可以完成的,比如Luv系统。
那么为什么PS舍弃了Luv而用了Lab?我觉得PS应该是从修色的角度考虑的。Luv色相分隔不清楚,又看不出补色关系,所以在修色功能上跟RGB、CMYK相比并没有什么优势。
最后的最后,再讨论一下为什么Lab系统要叫这个名字。
L好理解,a和b有什么意义呢?
我觉得答案是。。。没有什么意义!就是随便选的!
总得要起个名字对吧?对,就是辣么任性!!
等等,说随便选的其实也不完全。
按照楼主多年来(不充分不成熟不客观不中立)的观察,对于这种成对、成套出现参数,科学家最爱用一串一串的字母来命名。什么abc啊, mn啊, xyz啊,诸如此类。更何况L和a、b连在一起,还凑成了一个有意义的单词(Lab,实验室),比较容易记。
其中的b还能跟blue对应上,所以a是红-绿通道,b是黄-蓝通道。
但是呢,这里也有一个问题可能大家会比较困惑。那就是——PS取色器界面里面的b实在太多了!
RGB色空间有个B(Blue,注意是大写),HSB色空间里也有个B(明度Brightness,也是大写),现在Lab里面又来个b(黄-蓝通道,小写)。
——每一个的含义都不同!那为什么要用一样一样的字母啊摔!
这个问题是这样的,这些色空间一开始被定义的时候,并没有想过有一天竟然会被PS拉来排排坐。。。
所以,这些参数,就简单的采用了和自身概念有点关联的、大家都比较熟悉的字母来命名。
要是选了太有个性的名字,会给初学者带来很大的烦恼有木有。。。
当年楼主学高数的时候,有一个符号长这样:ζ。。。
扭来扭去的有木有?!写的时候不知道该怎么写有木有?!念的时候不知道该怎么念有木有?!(现在知道了,念:载塔)
而且还长得像条小虫子有木有?!每次强迫症的楼主看到都好想一巴掌拍死它!你说楼主的高数怎么能学得好啊啊啊啊~~~
你一定不想在PS里看到这种奇葩的选项,对不对?
实际上,更准确的说,Lab色空间应该叫L*a*b*才对,还要带星号呢。。。呢。。。呢。。。真正的Lab色已经很少有人用了,现在提到Lab,一般就是指L*a*b*。
同志们,知足吧,这个已经是简化版的了。。。
(带星跟不带星的区别我就不写了,你们也一定不想看,嗯哼~)
好了,以上,再见!
标签:PS,今生,颜色,21,Lab,CMYK,RGB,通道 来源: https://blog.csdn.net/xiaoyafang123/article/details/117291934