颜色科学基础:颜色三要素、CIE色度系统、Lab颜色空间、色差公式ΔE

做PVD装饰镀膜这些年,我越来越觉得颜色控制是门玄学。明明配方一样,工艺参数一样,出来的颜色就是差那么一点点。客户拿着色差仪一打,ΔE超标,整批退货。嗯,要解决这个问题,得先搞懂颜色到底是怎么回事。

今天我们就聊聊颜色科学的基础。这部分内容比较理论,但我会尽量用实际案例来讲。你想想看,如果连颜色怎么定义的都不清楚,怎么去控制它?

颜色科学基础 颜色三要素 色相·饱和度·明度 CIE色度系统 XYZ·xy色度图 Lab颜色空间 L* a* b* 均匀颜色空间 色差公式 ΔE ΔE76·ΔE94·ΔE00 PVD装饰镀膜颜色一致性控制

1. 颜色三要素:人眼怎么感知颜色

颜色不是物体的固有属性,而是光进入人眼后大脑的解读。说白了,颜色是一种感觉。我经常跟新来的工程师说:你看到的红色,可能和我看到的红色不一样。这就是为什么我们需要标准。

颜色三要素是描述任何颜色的三个基本维度:

  • 色相(Hue):就是颜色的种类,红、橙、黄、绿、蓝、紫这些。在PVD镀膜中,色相主要由膜层厚度和材料折射率决定。我记得有一次调一个香槟金色,膜厚差了5nm,色相就从暖金变成了冷金,客户直接拒收。
  • 饱和度(Saturation):也叫纯度,指颜色的鲜艳程度。饱和度越高,颜色越纯;饱和度越低,颜色越灰。PVD镀膜中,饱和度受膜层致密度和表面粗糙度影响很大。
  • 明度(Brightness/Value):颜色的明亮程度。明度越高,颜色越亮;明度越低,颜色越暗。在装饰镀膜中,明度直接跟反射率挂钩。
实战经验: 我建议你在调色时,先把色相调准,再调饱和度和明度。顺序搞反了,你会调得怀疑人生。我曾经有个项目,调一个深蓝色调了三天,后来发现是色相偏了5度,其他两个维度再怎么调也救不回来。

2. CIE色度系统:国际通用的颜色语言

1931年,国际照明委员会(CIE)搞了一套标准色度系统。为什么要搞这个?因为大家需要一种客观的、可量化的方式描述颜色。你不能跟供应商说「我要那种好看的蓝色」,对吧?

CIE色度系统的核心是XYZ三刺激值。简单理解:

  • X、Y、Z 是三个假想的原色,通过数学变换从RGB转换而来
  • Y值 直接代表亮度
  • x、y 是色度坐标,由XYZ计算得到:x = X/(X+Y+Z),y = Y/(X+Y+Z)

xy色度图长什么样?像个马蹄形。马蹄形的边界是单色光(纯色),内部是混合色。中心区域是白色。我在做PVD颜色开发时,经常把目标颜色和实际颜色的xy坐标标在图上,一眼就能看出偏哪个方向。

小技巧: 用CIE xy色度图判断颜色偏差方向非常直观。如果实际颜色的x坐标偏大,说明颜色偏红;y坐标偏小,说明颜色偏蓝。我曾经用这个方法,十分钟就找到了一个金色镀膜偏绿的原因——y坐标比目标值大了0.015。

3. Lab颜色空间:更符合人眼感知的模型

CIE XYZ虽然科学,但它有个问题:在色度图上,相同的距离并不代表相同的视觉差异。说白了,人眼对某些颜色区域的变化更敏感,对另一些区域则不那么敏感。

1976年,CIE推出了Lab颜色空间(也叫CIELAB)。这个空间的特点是:

  • L*:明度,从0(黑)到100(白)
  • a*:红绿轴,正值为红,负值为绿
  • b*:黄蓝轴,正值为黄,负值为蓝

Lab空间最大的优点是均匀性——在Lab空间中,相同的欧氏距离代表相同的视觉差异。这就为色差计算打下了基础。

从XYZ到Lab的转换公式如下:

L* = 116 × f(Y/Yn) - 16
a* = 500 × [f(X/Xn) - f(Y/Yn)]
b* = 200 × [f(Y/Yn) - f(Z/Zn)]

其中:
f(t) = t^(1/3)  当 t > (6/29)^3
f(t) = (1/3)×(29/6)^2 × t + 4/29  其他情况
Xn, Yn, Zn 是标准白点的三刺激值
注意: Lab值依赖于标准光源。同一个样品,在D65光源下和A光源下测出的Lab值完全不同。我见过有人拿D65光源下测的Lab值去对A光源下的标准,结果ΔE大得离谱。一定要确认光源条件一致!

4. 色差公式ΔE:量化颜色差异的标尺

色差ΔE是衡量两个颜色差异的数值。数值越小,颜色越接近。在PVD装饰镀膜行业,ΔE是客户验收的核心指标之一。

ΔE有几个版本,我按时间顺序给你捋一捋:

版本 公式 特点 我的评价
ΔE76 (CIE76) √[(ΔL*)² + (Δa*)² + (Δb*)²] 最简单,但精度差 现在基本不用了
ΔE94 (CIE94) 引入权重因子SL、SC、SH 比76版更准 我还在用,够用了
ΔE00 (CIEDE2000) 最复杂,含旋转项 最准确,最推荐 客户要求高时必用

ΔE00的公式比较复杂,我直接给代码实现:

def deltaE00(L1, a1, b1, L2, a2, b2):
    """
    计算CIEDE2000色差
    参数:两组Lab值
    返回:ΔE00
    """
    # 加权函数
    kL, kC, kH = 1, 1, 1
    
    # 计算C和h
    C1 = (a1**2 + b1**2)**0.5
    C2 = (a2**2 + b2**2)**0.5
    C_avg = (C1 + C2) / 2
    
    # G因子(蓝色区域修正)
    G = 0.5 * (1 - (C_avg**7 / (C_avg**7 + 25**7))**0.5)
    
    a1_prime = a1 * (1 + G)
    a2_prime = a2 * (1 + G)
    
    C1_prime = (a1_prime**2 + b1**2)**0.5
    C2_prime = (a2_prime**2 + b2**2)**0.5
    
    # 计算h_prime
    h1_prime = math.degrees(math.atan2(b1, a1_prime)) % 360
    h2_prime = math.degrees(math.atan2(b2, a2_prime)) % 360
    
    # ΔL', ΔC', ΔH'
    deltaL = L2 - L1
    deltaC = C2_prime - C1_prime
    
    deltaH = 2 * (C1_prime * C2_prime)**0.5 * \
             math.sin(math.radians((h2_prime - h1_prime) / 2))
    
    # ... 后续还有SL, SC, SH, RT等计算
    # 完整实现约80行,这里省略
    
    return deltaE
行业经验: 不同客户对ΔE的要求不一样。消费电子类产品一般要求ΔE00 ≤ 1.0,汽车内饰件要求ΔE00 ≤ 0.8,奢侈品包装可能要求ΔE00 ≤ 0.5。我建议你根据客户等级和产品定位,提前定好内控标准,别等出货了才发现超标。

5. 这些理论在PVD镀膜中怎么用?

理论讲完了,说说实际怎么用。我在PVD颜色控制中,主要用Lab空间和ΔE做三件事:

  1. 颜色标定:用色差仪测量标准色板和实际产品的Lab值,建立颜色数据库
  2. 过程监控:每炉产品抽检,计算与标准的ΔE,超出范围立即调整工艺
  3. 偏差分析:通过ΔL*、Δa*、Δb*的正负和大小,判断颜色偏哪个方向,针对性调整

举个例子。有一次做玫瑰金镀膜,客户反馈颜色偏红。我测了Lab值:ΔL* = +0.3(偏亮),Δa* = +1.2(偏红),Δb* = -0.5(偏蓝)。很明显,主要问题是a*偏大。我调整了氮气流量,降低了反应气体比例,a*降下来了,ΔE从1.8降到了0.6。

我的习惯: 每次调色,我都会记录目标Lab值和实际Lab值,以及对应的工艺参数。时间长了,你就能总结出一套规律:比如氮气流量每增加1sccm,a*大约变化多少。这就是经验数据,比理论计算靠谱多了。

嗯,颜色科学基础就讲到这里。这些概念是后续所有颜色控制方法的基础。你理解了颜色三要素,就知道从哪些维度描述颜色;理解了CIE和Lab,就知道怎么量化颜色;理解了ΔE,就知道怎么判断颜色是否合格。下一节我们会把这些知识用到PVD工艺参数控制中,看看怎么通过调整工艺来精确控制颜色。


专注资料整理