尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
色品图从入门到实战:CIE1931色度坐标、色域覆盖率与LED分光全解析
1. 色品图到底是什么为什么搞色彩的人都绕不开它第一次接触色品图是在做一个显示屏色彩校准的项目当时需要把一批面板的色域覆盖率算清楚客户丢过来一张马蹄形彩色图说“按这个标准来”。那张图就是CIE1931色品图。后来做LED分光、做相机色彩标定、做印刷打样几乎每个跟颜色打交道的环节都会撞上它。可以说只要你的工作和“颜色准不准”有关色品图就是那张必须看懂的地图。色品图本质上是一张二维坐标图横轴是x纵轴是y用来描述颜色的“色度”信息也就是抛开亮度之后一个颜色到底偏红、偏绿还是偏蓝。它把三刺激值XYZ归一化处理得到x、y两个坐标把三维的颜色空间压到平面上。这样做的好处是直观坏处是丢了亮度维度所以色品图只能告诉你“是什么颜色”不能告诉你“有多亮”。它解决的问题很具体当你需要判断两个颜色是不是同一个色调、某个显示设备能覆盖多大范围的颜色、某批LED的波长是否落在合格区间色品图都能给你一个统一的参照系。没有它不同厂商、不同设备之间的颜色沟通就变成了各说各话。适合看这篇内容的人包括做显示屏、LED、相机、印刷、涂料、纺织等跟颜色相关工作的工程师做色彩管理、图像处理、视觉算法的开发者以及刚入行、被xyY和XYZ搞得一头雾水的同学。我会从坐标怎么来的讲起一直讲到怎么在实际项目里用它做判断中间穿插我踩过的坑和实测经验。2. 色品图的底层逻辑从XYZ到xyY的推导与取舍2.1 为什么需要XYZ这个中间层人眼对颜色的感知其实来自三种视锥细胞分别对长波、中波、短波敏感。但直接用RGB来描述颜色有个致命问题不同设备的RGB光谱响应不一样同一个RGB值在不同屏幕上看起来完全不同。CIE在1931年提出了一套“理想观察者”模型用三个假想的刺激值X、Y、Z来替代真实的RGB目的是让颜色描述与具体设备解耦。XYZ的选取有几个硬性约束Y必须等于亮度这样亮度信息可以单独拿出来X和Z则负责补全色度信息。所有可见光的颜色都能用XYZ的正值组合表示不会出现负值这是它比RGB更适合做标准的原因。你可以把XYZ理解成颜色世界的“世界语”不管你是屏幕、打印机还是人眼最后都翻译成XYZ来对话。2.2 xyY归一化的数学过程有了XYZ之后色度坐标的定义就很直接了x X / (X Y Z) y Y / (X Y Z) z Z / (X Y Z) 1 - x - y因为x y z 1所以z是冗余的只需要x和y就能确定色度。Y单独保留作为亮度。这就是xyY颜色空间的由来。这里有个容易混淆的点xyY里的Y和XYZ里的Y是同一个值不是归一化后的。很多人第一次看会以为Y也被归一化了其实没有。归一化只发生在色度坐标上。这个细节在做亮度计算时特别重要我见过有人把xyY的Y当成百分比用结果亮度算出来差了一个数量级。2.3 色品图的边界为什么是马蹄形把所有单色光也就是光谱色的xy坐标画出来连成一条曲线就是光谱轨迹。这条轨迹从深红约700nm经过橙、黄、绿、青、蓝一直到深紫约380nm。把光谱轨迹的两端用一条直线连起来这条直线叫紫线代表红和紫的混合色。光谱轨迹加紫线围成的区域就是所有物理上可实现的颜色形状像马蹄所以叫马蹄形。马蹄形外面的点代表什么代表理论上存在但物理上无法实现的颜色。比如x0.5、y0.5这个点算出来需要负的某个刺激值现实中没有任何光源能发出这种颜色。这个边界概念在做色域分析时非常关键因为任何设备的色域都必须是马蹄形的子集。注意光谱轨迹上的颜色是单色光纯度最高。越往马蹄形中心走颜色越接近白色纯度越低。中心附近有一个白点代表等能白光坐标大约是x0.333、y0.333。3. 核心参数与实操要点读懂色品图上的每一条线3.1 光谱轨迹与波长标注光谱轨迹上每个点对应一个波长从380nm到700nm。实际使用时你不需要记住每个波长的坐标但要知道几个关键位置520nm附近是绿色最饱和的区域610nm附近是红色最饱和的区域470nm附近是蓝色最饱和的区域。做LED分光时客户给的波长容差通常就是基于这些位置来定的。我做过一个LED分选的项目要求红光波长在620nm到625nm之间。把这两个波长对应的xy坐标标在色品图上就形成了一个很小的区域分选机就按这个区域来筛。如果只看波长不看色品坐标遇到光谱半高宽比较大的LED波长对了但颜色看起来偏橙就是因为色品坐标偏了。3.2 色温线与黑体轨迹色品图上有一条从红到蓝的曲线叫黑体轨迹也叫普朗克轨迹。它代表不同温度下黑体辐射的颜色。比如2700K对应暖黄光6500K对应接近日光的白光。实际光源的色温通常用相关色温CCT来表示就是找到黑体轨迹上离该光源色品坐标最近的点那个点的温度就是CCT。这里有个实操中的坑两个色温相同的光源色品坐标可能不一样因为它们在黑体轨迹的垂直方向上偏离了。这个偏离量用Duv表示。Duv为正表示偏绿为负表示偏品红。做高端照明时Duv要控制在±0.003以内否则人眼能明显看出色调差异。我见过一批灯珠CCT都是4000K但Duv差了0.01装在一起后一半偏绿一半偏红客户直接退货。3.3 色域三角形与覆盖率计算任何显示设备或打印设备的色域在色品图上都表现为一个多边形通常是三角形。三角形的三个顶点就是该设备红、绿、蓝三个基色的色品坐标。色域覆盖率就是设备三角形面积与某个标准色域三角形面积的比值。计算三角形面积用鞋带公式面积 0.5 * |x1(y2 - y3) x2(y3 - y1) x3(y1 - y2)|比如sRGB的三个基色坐标大约是红(0.64, 0.33)、绿(0.30, 0.60)、蓝(0.15, 0.06)。代入公式算出来面积约0.112。如果某显示器的三角形面积是0.134那它对sRGB的覆盖率就是0.134/0.112≈119.6%。但注意覆盖率超过100%不代表完全覆盖因为形状可能不同有些区域覆盖了有些区域反而没覆盖。所以更严谨的做法是算交集面积而不是简单比总面积。提示做色域对比时一定要说明是“面积比”还是“交集比”。很多厂商宣传的120% sRGB其实是面积比实际交集可能只有95%。3.4 麦克亚当椭圆与颜色容差色品图上还有一个重要概念麦克亚当椭圆。它描述的是人眼对颜色差异的感知阈值。在色品图上人眼刚能分辨出颜色差异的区域近似为椭圆不同位置的椭圆大小和方向都不一样。在绿色区域椭圆比较小人眼很敏感在蓝色区域椭圆比较大人眼相对迟钝。这个特性在做颜色容差判定时非常实用。比如两个LED的色品坐标距离相同但在绿色区域可能人眼能看出差异在蓝色区域就看不出来。所以高端的颜色分选设备会按麦克亚当椭圆来划分档位而不是简单地按圆形或矩形划分。我参与过一个项目客户要求按3步麦克亚当椭圆分选结果良率比按矩形分选低了15%但客户投诉率降到了几乎为零。4. 实操过程从原始光谱数据到色品图绘制4.1 数据采集与预处理要画一张准确的色品图第一步是拿到光谱数据。用光谱仪测量光源或物体的光谱功率分布波长范围通常取380nm到780nm步长1nm或5nm。步长越小积分越准但数据量越大。对于大多数应用5nm步长足够除非你要做高精度的窄带光源分析。拿到光谱数据后先做暗电流校正和参考白校正。暗电流校正就是扣掉没有光时的读数参考白校正就是用标准白板或标准光源做归一化。这两步不做后面算出来的XYZ会偏得离谱。我见过有人直接用光谱仪的原始读数去算结果色温差了500K排查了半天才发现是没做暗电流校正。4.2 三刺激值XYZ的积分计算有了校正后的光谱功率分布S(λ)用CIE标准观察者的颜色匹配函数x̄(λ)、ȳ(λ)、z̄(λ)做积分X k * Σ S(λ) * x̄(λ) * Δλ Y k * Σ S(λ) * ȳ(λ) * Δλ Z k * Σ S(λ) * z̄(λ) * Δλ其中k是归一化系数对于自发光光源通常取k 683 lm/W这样Y直接对应亮度。对于反射物体k要选得让完美反射体的Y等于100。颜色匹配函数有多个版本CIE1931是2度视场CIE1964是10度视场。做小面积光源分析用2度做大面积均匀光源用10度。选错了会导致色品坐标偏移虽然不大但在高精度场合不能忽略。4.3 色品坐标计算与绘图算完XYZ后按前面的公式算x和y。然后就可以在色品图上标点了。如果是画光谱轨迹就把380nm到700nm每个波长的xy都算出来连成线。如果是画设备色域就把红绿蓝三个基色的xy算出来连成三角形。绘图时有个细节色品图的背景色通常是用sRGB色域填充的但sRGB色域比马蹄形小很多所以马蹄形边缘的区域在图上显示为灰色或白色。这不代表那些颜色不存在只是显示器显示不出来。如果你要精确标注光谱轨迹上的点最好用坐标网格图而不是彩色填充图。4.4 一个完整的计算示例假设某光源的光谱数据经过积分后得到X0.45、Y0.40、Z0.15。那么x 0.45 / (0.45 0.40 0.15) 0.45 / 1.00 0.45 y 0.40 / 1.00 0.40这个点落在色品图的橙红区域。如果要算相关色温就在黑体轨迹上找最近点。假设最近点对应3000K那CCT就是3000K。再算Duv如果点在轨迹上方Duv为正偏绿在下方Duv为负偏品红。注意计算CCT时如果色品坐标离黑体轨迹太远Duv绝对值大于0.05CCT就没有意义了这时候应该用其他方式描述颜色比如主波长和纯度。5. 常见问题与排查技巧实录5.1 色品坐标算出来是负数怎么办理论上XYZ都是正值算出来的xy应该在0到1之间。但如果光谱数据有噪声或者暗电流校正没做好可能出现负的XYZ进而导致xy超出正常范围。排查步骤先检查光谱仪是否饱和再检查暗电流校正是否在完全遮光条件下做的最后检查积分范围是否包含了所有有效波长。如果都没问题可能是光源太弱信噪比不够需要增加积分时间或平均次数。5.2 同一批LED色品坐标分散很大这通常是分选环节的问题。先确认测量条件是否一致驱动电流、温度、测量距离、光谱仪积分时间。如果条件一致但分散还是大那就是LED芯片本身的波长均匀性问题。这时候要么提高分选精度要么跟供应商谈更窄的波长档位。我遇到过一批灯珠供应商说波长容差±5nm实测色品坐标分散度相当于±12nm后来发现是他们分选机的校准片老化了。5.3 色域覆盖率算出来超过100%但显示效果不好前面说过面积比超过100%不代表完全覆盖。如果设备的色域三角形形状和标准色域差异很大可能出现面积大但关键区域缺失的情况。比如某些广色域显示器绿色很饱和但红色偏橙导致sRGB的深红区域反而覆盖不到。解决办法是算交集面积或者直接看关键颜色的色差。做专业调色时我一般会选24个标准色块逐个算色差比看覆盖率靠谱得多。5.4 色品图上的白点位置不对白点应该是等能白光坐标(0.333, 0.333)。如果画出来偏了通常是颜色匹配函数用错了或者积分范围不对称。检查一下是不是把380nm到780nm的积分范围写成了400nm到700nm少了紫外和深红部分白点就会偏。另外如果用的是10度观察者白点坐标会略有不同大约是(0.313, 0.329)这是正常的。5.5 常见问题速查表问题现象可能原因排查方法解决措施xy坐标为负暗电流未校正或光谱仪饱和检查遮光条件和信号强度重新校正调整积分时间色品坐标分散大测量条件不一致或芯片均匀性差固定条件复测对比不同批次提高分选精度或更换供应商覆盖率超100%但效果差面积比不等于交集比计算交集面积或关键色差用交集比或色差评估白点位置偏移积分范围或观察者函数错误检查波长范围和CMF版本修正积分参数CCT计算异常Duv过大或黑体轨迹查找错误检查Duv绝对值是否超0.05改用主波长描述实操心得做颜色测量时温度对结果影响很大。LED的色品坐标会随结温漂移通常温度升高波长红移。所以测量时要等光源热稳定一般点亮后等5到10分钟再测。我吃过这个亏冷态测和热态测差了0.005的y坐标客户直接判不合格。6. 色品图在实际项目中的扩展应用6.1 显示屏色彩校准中的色品图应用做显示器校准时色品图用来确定显示器的原生色域和校准目标。流程通常是先测显示器的红绿蓝白四个点的色品坐标画出原生色域三角形然后根据目标色域比如sRGB或DCI-P3计算校准矩阵最后通过调整RGB增益和偏移把白点拉到目标位置把色域三角形尽量对齐目标。这里有个取舍如果原生色域比目标色域大很多校准后色域会缩小但颜色更准如果原生色域比目标小那就只能尽量逼近无法完全覆盖。我一般建议客户先明确用途如果是做印刷打样优先保证sRGB覆盖如果是做影视后期优先保证DCI-P3覆盖。6.2 LED分光分色中的色品图应用LED分光分色就是按色品坐标把LED分成不同的档位。分选机的原理是快速测量每个LED的xy坐标然后根据预设的档位边界判定归属。档位边界可以是矩形、圆形或麦克亚当椭圆。矩形最简单但边缘区域的颜色差异可能超出人眼容差麦克亚当椭圆最符合人眼感知但分选速度慢良率也低。实际项目中我通常建议客户先用矩形分选然后对边缘档位做二次筛选。这样兼顾效率和品质。另外分选机的校准周期很重要一般每班次开始前都要用标准光源校准一次否则测量漂移会导致分选错误。6.3 印刷与涂料行业的色品图应用印刷行业用色品图来定义油墨的色域和叠印效果。涂料的颜色匹配也依赖色品图通过测量标准板和样板的xy坐标计算色差然后调整配方。这里要注意的是印刷和涂料的颜色是反射色测量时要用标准光源如D50或D65照明否则色品坐标会随光源变化。我做过一个涂料调色的项目客户用D65光源确认颜色但车间用普通日光灯照明结果确认合格的批次在车间看起来偏黄。后来统一了照明光源问题才解决。所以做反射色测量时光源的一致性比测量精度还重要。6.4 色品图与色貌模型的结合色品图只描述色度不描述色貌。实际人眼看到的颜色还受亮度、背景、观察者适应状态影响。所以现代色彩管理会结合色貌模型比如CIECAM02来预测颜色在不同条件下的外观。色品图在这个流程中仍然是基础但不再是全部。做高端色彩项目时我会先用色品图做初步筛选再用色貌模型做精细调整。比如做汽车内饰颜色匹配不同光照条件下颜色看起来不一样单靠色品图不够必须结合色貌模型来评估。7. 工具选型与数据处理的几点经验7.1 光谱仪的选择做色品图相关的测量光谱仪的分辨率和灵敏度是关键。分辨率一般选1nm到5nm做窄带光源如激光或LED时选1nm做宽谱光源如白光LED或荧光灯时5nm够用。灵敏度要看测量对象弱光需要高灵敏度探测器。我用过几种不同档次的光谱仪便宜的几千块贵的几十万。差别主要在杂散光抑制、波长准确度和重复性。做研发建议用中高端做产线分选可以用低端但必须定期校准。校准用标准灯一般每年送检一次。7.2 计算脚本的编写算XYZ和xy的脚本很简单Python用numpy几行就能搞定。关键是颜色匹配函数的数据要准确建议从CIE官方或权威数据库获取不要随便从网上抄。我见过有人用了错误的CMF数据算出来的色品坐标整体偏移排查了很久才发现是数据源的问题。import numpy as np # 假设已加载波长数组wl和光谱数组S # 以及CMF数据x_bar, y_bar, z_bar delta wl[1] - wl[0] X np.sum(S * x_bar) * delta Y np.sum(S * y_bar) * delta Z np.sum(S * z_bar) * delta total X Y Z x X / total y Y / total这段代码里delta是波长步长积分就是求和乘以步长。注意S、x_bar、y_bar、z_bar的长度要一致波长要对齐。如果步长不是均匀的要用梯形积分。7.3 数据可视化画色品图可以用matplotlib光谱轨迹和紫线用plot色域三角形用fill。背景色填充比较麻烦可以用imshow加载一张预先生成的色品图背景然后把坐标轴对齐。网上有现成的色品图背景图但要注意版权和坐标准确性。我一般自己生成背景在xy平面上采样把每个xy转成XYZ设Y1再转成sRGB超出sRGB色域的点用灰色表示。这样生成的背景和坐标轴完全对齐标注也方便。提示画图时把光谱轨迹的波长标注加上方便读者对照。标注不要太多每隔50nm标一个就行否则图会很乱。8. 我踩过的坑和最后分享的几个技巧做色品图相关的工作十几年坑踩了不少。最大的一个坑是早期做LED分选时没有考虑温度漂移冷态分选出来的批次点亮后颜色偏了客户投诉。后来加了预热环节问题解决。第二个坑是算色域覆盖率时用了面积比客户拿去做宣传结果被专业用户指出交集不够尴尬收场。从那以后我对外一律用交集比或关键色差。还有一个容易忽略的点色品图上的坐标精度。xy坐标通常保留四位小数但实际测量精度可能只有三位。如果报告里写四位会给人虚假的精确感。我一般根据测量设备的重复性来决定保留位数重复性0.001就保留三位重复性0.0005才保留四位。最后分享一个小技巧做颜色对比时不要只看色品图上的距离还要看方向。在麦克亚当椭圆的长轴方向上人眼不敏感距离大一点也没关系在短轴方向上距离小一点人眼就能看出来。所以判断两个颜色是否可接受要结合椭圆的方向来评估而不是简单算欧氏距离。这个技巧在做颜色容差判定时特别有用能帮你减少不必要的返工。色品图这个东西入门容易精通难。刚开始只要会算xy、会看马蹄图就行但要做到在实际项目中灵活运用需要理解它背后的假设和局限。希望这篇内容能帮你少走一些弯路把颜色这件事做得更靠谱。
RELATED

相关推荐

live2d.zip 模型包拆解:从解压校验到网页与小程序的完整集成指南

live2d.zip 模型包拆解:从解压校验到网页与小程序的完整集成指南

简介:面向前端开发者的 Live2D 网页实践资源包,围绕“看板娘”在 HTML 中的接入与交互展开,适合对网页动态角色感兴趣的初中级开发者。压缩包共 506 个文件,约 38.7MB,包含 17 个 Live2D 模型(moc 数据与 j…

📅 2026/10/9 18:12:05
YOLOv3车辆检测实战:Keras实现的数据准备、Anchor匹配与后处理详解

YOLOv3车辆检测实战:Keras实现的数据准备、Anchor匹配与后处理详解

简介:本资源是一套面向深度学习初学者与计算机视觉实践者的车辆检测实战项目,聚焦智能交通场景下的目标检测需求,帮助读者掌握Keras框架搭建与YOLO算法落地的关键能力。压缩包共15个文件(27.42MB),含7张实测…

📅 2026/10/9 18:07:05
用CLIP实现以文搜图:特征提取、Faiss索引与部署避坑指南

用CLIP实现以文搜图:特征提取、Faiss索引与部署避坑指南

简介:基于CLIP的图文检索系统实战项目,面向深度学习入门者与算法开发者,旨在解决自然语言描述到图像精准匹配的工程化问题。压缩包共18个文件,包含9个Python脚本、4个JSON配置、2个CSV数据文件,以及依赖说明、Markdown…

📅 2026/10/9 18:07:05
MORE NEWS

更多资讯

📰

Oracle Client 选型安装与连接排错实战:从 Instant Client 到 Python 连接池

简介:Oracle Instant Client 11.2 是面向数据库开发者、DBA 与运维人员的轻量级客户端工具包,用于在无需安装完整数据库服务器的前提下连接并操作 Oracle 11g 及更高版本数据库。压缩包共 106 个文件,约 37.88MB,以 dll 动态库、h…

📰

Spring Boot+Vue在线购物平台毕设资源包:从环境配置到全栈跑通

简介:一份基于Springboot与Vue的在线购物平台毕业设计项目资料,面向计算机相关专业正在准备毕业设计的学生,也适合需要项目实战练习的Java学习者,可直接用于课程设计或期末大作业。项目采用SpringbootMybatis后端与Vue前端&#x…

📰

从Cline原理看AI Agent设计的一般范式:用TaoToken统一Key跑通ReAct与MCP

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Qwen3 本地部署避坑指南:Ollama 拉取失败与 API 通道改到 TaoToken 的排查实录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Python-BinaryNinja 插件开发:从逆向分析到自动化流水线

简介:这份资源是面向逆向工程初学者与安全研究人员的Binary Ninja Python插件开发包,帮助使用者在反汇编与二进制分析场景中通过Python脚本扩展工具能力,降低定制化分析流程的门槛。压缩包共6个文件,约9KB,包含py插件源…

📰

Java文件操作进阶:从File类到NIO.2的实践与避坑指南

做Java开发这几年,文件操作几乎每天都在碰,但说句实话,很多人对这一块的理解停留在“能用就行”。我见过不少工作两三年的同事,遇到文件读写还是只会甩一个FileInputStream进去,碰上编码问题一脸懵,更别提N…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬