ΔE是否为可靠的颜色感知距离计算指标?色卡排序异常咨询
关于ΔE作为颜色感知距离可靠性的疑问
我尝试按“最大差异”对色卡排序,却得到了异常结果。比如下图中的第5号(#0DE0FE)和第14号(#01DDAE)颜色,在非色盲视觉感受中极为相似,相似度远高于后续部分颜色,但它们与此前所有颜色的最小ΔE值,却高于后续多数颜色。想知道ΔE是否可作为计算颜色“感知距离”的可靠方式,还是应采用其他方法?

颜色十六进制代码
> x.hex [1] "#060186" "#8EF905" "#F5C5F7" "#805200" "#0DE0FE" "#D0135D" "#0B834F" "#FABF74" "#417BEA" "#FA4D01" [11] "#DC39FC" "#590708" "#919913" "#01DDAE" "#068896" "#D28B8B" "#7C4C8E" "#A3BCE7" "#0C5378" "#F1E11E" [21] "#A24731" "#495C0D" "#01B633" "#4A30FE" "#BB7D0A" "#680F41" "#C1D597" "#FC75C1" "#A786C7" "#29A4DD" [31] "#FD0A3D" "#43A99B" "#B16A8D" "#D002A2" "#BA7755" "#FECBB6" "#253467" "#FF9143" "#8A763A" "#5960A6" [41] "#B79D66" "#70A271"
与此前颜色的最小ΔE值
> DeList [1] 117.25473 69.53788 55.00019 46.90173 38.54371 37.20359 36.32807 35.23608 28.57360 27.10889 [11] 26.77178 25.24130 24.39958 24.24133 22.51525 22.23315 20.50791 19.93881 19.63842 19.45253 [21] 19.31200 19.04087 18.90102 18.64973 18.25806 18.08846 17.55115 17.19687 16.82420 15.35578 [31] 15.17018 14.95605 14.77414 14.67706 14.67703 14.37527 14.16665 14.02716 14.00375 13.90574 [41] 13.84133
使用的R代码
ΔE计算代码:
spacesXYZ::DeltaE( lab.matrix[i,], lab.matrix[j,], 2000 )
LAB转十六进制代码:
x <- lab.matrix[pal.list,] # 从矩阵提取LAB数值 x.lab <- colorspace::LAB(x) # 转换为LAB色彩空间类 (x.hex <- colorspace::hex(x.lab)) # 转换为十六进制字符串
ΔE的可靠性与替代方案
ΔE(尤其是你使用的ΔE 2000)是目前工业界和色彩科学中广泛使用的感知色差计算方法,但它并非完美匹配人类视觉的所有场景,原因如下:
- 视觉感知的复杂性:人类视觉对不同颜色区域的敏感度不同——比如对蓝绿色调的区分度可能低于对红黄色调的区分度,ΔE 2000虽然针对这一点做了优化,但仍无法完全复刻人类视觉的主观感受。你提到的第5号(亮青色)和第14号(青绿色)颜色,在LAB空间中可能因L(明度)和a/b(色度)的组合,使得ΔE计算值偏高,但人类视觉会将它们归为相近的冷色调,产生“相似”的主观感受。
- 排序逻辑的局限:你采用的是“每次选择与已有色卡最小ΔE最大的颜色”的贪心策略,这种方法本身可能陷入局部最优,无法保证全局的最大差异分布。即使ΔE完全准确,贪心排序也可能出现视觉上的相似颜色被提前选中的情况。
替代方法建议
- 尝试其他ΔE变体:比如ΔE 94或ΔE CMC,不同变体对明度、色度、色相的权重设置不同,可能更贴合你的视觉感受。不过ΔE 2000通常是最接近人类感知的版本。
- 使用基于视觉模型的色彩空间:比如CIECAM02或CAM16,这些空间更贴近人类视觉系统的工作机制,基于它们计算的色差可能更符合主观感受。R语言中
colorspace包支持CAM16空间的转换和色差计算。 - 优化排序算法:放弃贪心策略,改用全局优化算法(如模拟退火、遗传算法)来选择色卡组合,确保整体的最大视觉差异分布,而不是每次只选局部最优的颜色。
- 引入主观评价校准:如果需要严格匹配人类视觉,可以将ΔE计算结果与小规模用户的主观相似度评分进行校准,建立自定义的色差权重模型。
内容的提问来源于stack exchange,提问作者Ian
相关产品推荐
相关产品推荐

