色差计算公式发展

色差计算结果在色差检测中起定量表征的作用,因此国内外对于色差计算公式的研究也是在不断地发展与改进。国际照明委员会(CIE)在1976年推荐了CIE1976LAB色差计算公式,其是将先前基于孟塞尔系统的色差公式使用一系列立方根函数进行简化,从而得到相对均匀的颜色空间和较为符合人眼视觉的色差计算公式,主要应用于印刷、染料等表面颜色工业领域。而在CIELAB颜色空间内由大量中小色差数据拟合成的二维a*b*平面颜色宽容度椭圆分布表明其是个非完全匀色空间,且图中椭圆的面积随彩度的增加而变大,同时蓝区内大多数椭圆未指向中心,即说明人眼对于高彩度的敏感性较低且此色差计算存在蓝光问题。因此为更符合人眼判断以及提高色差检测结果的准确性,后续的研究皆在CIE1976LAB的数据基础上对明度、彩度和色相差进行了系数的修正和参数加权,从而得到了CMC(l:c)以及CIE94等适用度更广、准确性更高的色差计算公式。

但CMC(l:c)和CIE94色差公式都无法准确模拟蓝色区域内的色差实验数据从而设置修正系数,为此CIE通过补充彩度差和色相差交互项的校正(改良蓝色性能)以及CIELAB a*因子的调整(改良灰色性能)而推出了更可靠的CIEDE2000色差计算公式,其颜色空间的均匀度得到了进一步提高,同时也更能准确地反映出人眼所感知的色差。

1.CIE1976LAB色差计算公式

式中,下标为2的为待测布匹图像在CIELAB颜色空间中的坐标,下标为1的为标准参照布匹图像在CIELAB颜色空间中的坐标。同时,该公式又可由明度、彩度和色相差表示为:

彩度和色相角及其差值计算如下:

function[DEcielab,L1,a1,b1,L2,a2,b2,DL,Da,Db] = CIELAB(LAB1,LAB2)
% CIELAB 色差计算公式 LAB1 为待测图;LAB2 为标准参照图L1=LAB1(:,:,1);L2=LAB2(:,:,1);
a1=LAB1(:,:,2);a2=LAB2(:,:,2);
b1=LAB1(:,:,3);b2=LAB2(:,:,3);
L1=L1./2.55;L2=L2./2.55;a1=a1-128;a2=a2-128;b1=b1-128;b2=b2-128;
a1=double(a1);a2=double(a2);
b1=double(b1);b2=double(b2);
DL=abs(L1-L2);Da=abs(a1-a2);Db=abs(b1-b2);
DL=double(DL);Da=double(Da);Db=double(Db);
% C1=(a1.^2+b1.^2).^0.5;C2=(a2.^2+b2.^2).^0.5;
% DC=abs(C1-C2);
% DC=double(DC);
% rad=pi/180;
% h1=atan(b1./a1)/rad;h2=atan(b2./a2)/rad;
% if abs(h1-h2)<=180
% Dh=h1-h2;
% else
% if (h1-h2)>180
% Dh=h1-h2-360;
% else
% Dh=h1-h2+360;
% end
% end
% Dh=double(Dh);
% DH=2*(C1.*C2).^0.5.*sin(rad*Dh/2);
% % DEcielab=(DL.^2+Da.^2+Db.^2).^0.5;
% DEcielab=(DL.^2+DH.^2+DC.^2).^0.5;
DEcielab=(DL.^2+Da.^2+Db.^2).^0.5;

2.CMC(l:c)色差计算公式

对式中的明度、彩度、色相差补充加权系数和权重因子作调整后,即得到CMC(l:c)以及CIE94色差公式。CMC(l:c)计算公式如下:

function [DEcmc,L1,a1,b1,L2,a2,b2,DL,Da,Db,DC,DH] = CMC(LAB1,LAB2)
% CMC 色差计算公式 LAB1 为待测图;LAB2 为标准参照图l=2;c=1;
L1=LAB1(:,:,1);L2=LAB2(:,:,1);
a1=LAB1(:,:,2);a2=LAB2(:,:,2);
b1=LAB1(:,:,3);b2=LAB2(:,:,3);
L1=L1./2.55;L2=L2./2.55;a1=a1-128;a2=a2-128;b1=b1-128;b2=b2-128;
a1=double(a1);a2=double(a2);
b1=double(b1);b2=double(b2);
DL=abs(L1-L2);Da=abs(a1-a2);Db=abs(b1-b2);
DL=double(DL);Da=double(Da);Db=double(Db);
DE=(DL.^2+Da.^2+Db.^2).^0.5;
C1=(a1.^2+b1.^2).^0.5;C2=(a2.^2+b2.^2).^0.5;
DC=abs(C1-C2);
DC=double(DC);
DH=abs((DE.^2-DL.^2-DC.^2).^0.5);
DH=double(DH);
if L2>=16
Sl=0.040975*L2./(1+0.01765*L2);
else
Sl=0.511;
end
Sl=double(Sl);
Sc=(0.0638*C2./(1+0.0131*C2))+0.638;
Sc=double(Sc);
F=((C2.^4)./(C2.^4+1900)).^0.5;
rad=pi/180;
h2=atan(b2./a2)/rad;
if 164<=h2 | h2<=345
T=0.56+abs(0.2*cos(rad*(h2+168)));
else
T=0.36+abs(0.4*cos(rad*(h2+35)));
end
SH=Sc.*(F.*T+1-F);
SH=double(SH);
DEcmc=((DL./(Sl*l)).^2+(DC./(Sc*c)).^2+(DH./SH).^2).^0.5;

3.CIE94色差计算公式

而CIE94与CMC(l:c)公式同样附加了如下权重系数,其计算公式为:

其中:

function [DEcie94,L1,a1,b1,L2,a2,b2,DL,Da,Db,DC,DH] = CIE94(LAB1,LAB2)
% CIE94 色差计算公式 LAB1 为待测图;LAB2 为标准参照图KL=2;KC=1;KH=1;
L1=LAB1(:,:,1);L2=LAB2(:,:,1);
a1=LAB1(:,:,2);a2=LAB2(:,:,2);
b1=LAB1(:,:,3);b2=LAB2(:,:,3);
L1=L1./2.55;L2=L2./2.55;a1=a1-128;a2=a2-128;b1=b1-128;b2=b2-128;
a1=double(a1);a2=double(a2);
b1=double(b1);b2=double(b2);
DL=abs(L1-L2);Da=abs(a1-a2);Db=abs(b1-b2);
DL=double(DL);Da=double(Da);Db=double(Db);
C1=(a1.^2+b1.^2).^0.5;C2=(a2.^2+b2.^2).^0.5;
DC=abs(C1-C2);
DC=double(DC);
SL=1;
SC=1+0.045*C2;
SC=double(SC);
SH=1+0.015*C2;
SH=double(SH);
% DH=(Da.^2+Db.^2-DC.^2).^0.5;
% DH=double(DH);
DE=(DL.^2+Da.^2+Db.^2).^0.5;
DH=abs((DE.^2-DL.^2-DC.^2).^0.5);
DH=double(DH);
DEcie94=((DL./(SL*KL)).^2+(DC./(SC*KC)).^2+(DH./SH*KH).^2).^0.5;

4.CIEDE2000色差计算公式

CIEDE2000则针对蓝光等问题进行了更准确地色差检测校正,即得到了更为复杂的色差计算公式如下:

其余系数表达式如下:

同时,CIEDE2000公式添加了旋转函数,其目的是校正色空间蓝色区域容差椭圆主轴方向的偏转,表达式为:

function [DEcie2000,L1,a1,b1,L2,a2,b2,DL,Da,Db,DC1,DH1] = CIE2000(LAB1,LAB2)
% CIE2000 色差计算公式 LAB1 为待测图;LAB2 为标准参照图KL=2;KH=1;KC=1;
L1=LAB1(:,:,1);L2=LAB2(:,:,1);
a1=LAB1(:,:,2);a2=LAB2(:,:,2);
b1=LAB1(:,:,3);b2=LAB2(:,:,3);
L1=L1./2.55;L2=L2./2.55;a1=a1-128;a2=a2-128;b1=b1-128;b2=b2-128;
a1=double(a1);a2=double(a2);
b1=double(b1);b2=double(b2);
DL=abs(L1-L2);Da=abs(a1-a2);Db=abs(b1-b2);
DL=double(DL);Da=double(Da);Db=double(Db);
C1=(a1.^2+b1.^2).^0.5;C2=(a2.^2+b2.^2).^0.5;
C_mean=(C1+C2)/2;
C_mean=double(C_mean);
G=0.5-0.5*(((C_mean.^7)./((C_mean.^7)+25^7)).^0.5);
a11=(1+G).*a1;a21=(1+G).*a2;
C11=(a11.^2+b1.^2).^0.5;C21=(a21.^2+b2.^2).^0.5;
% C11=double(C11);C21=double(C21);
C_mean1=(C11+C21)/2;
C_mean1=double(C_mean1);
DC1=abs(C11-C21);
DC1=double(DC1);
rad=pi/180;
h11=atan(b1./a11)/rad;h21=atan(b2./a21)/rad;
if abs(h11-h21)<=180
Dh1=h11-h21;
else
if (h11-h21)>180
Dh1=h11-h21-360;
else
Dh1=h11-h21+360;
end
end
% Dh1=double(Dh1);
DH1=2*(C11.*C21).^0.5.*sin(rad*Dh1/2);
% h_mean1=(h11+h21)/2;
% h_mean1=double(h_mean1);
% Dh1=h11-h21;
% Dh1=double(Dh1);
if abs(h11-h21)<=180
h_mean1=(h11+h21)/2;
else
if (h11+h21)<360
h_mean1=(h11+h21+360)/2;
else
h_mean1=(h11+h21-360)/2;
end
end
% h_mean1=double(h_mean1);
SC=1+0.045*C_mean1;
SC=double(SC);
L_mean1=(L1+L2)./2;
L_mean1=double(L_mean1);
SL=1+(((0.015*(L_mean1-50).^2)./((20+(L_mean1-50).^2).^0.5)));
SL=double(SL);
T=1-0.017*cos(rad*(h_mean1-30))+0.24*cos(rad*(2*h_mean1))+0.32*cos(rad*
(3*h_mean1+6))-0.20*cos(rad*(4*h_mean1-63));
SH=1+0.015*T.*C_mean1;
Dtheta=30*exp(-(((h_mean1-275)/25).^2));
RC=2*((((C_mean1).^7)./((C_mean1.^7)+25^7)).^0.5);
RT=-sin(rad*2*Dtheta).*RC;
DEcie2000=((DL./(KL*SL)).^2+(DC1./(SC*KC)).^2+(DH1./(SH*KH)).^2+RT. *(DC1./(SC*KC)).*(DH1./(SH*KH))).^0.5;

多种经典色差计算公式——matlab代码相关推荐

  1. ncut算法matlab实现,ncut_multiscale_1_6 经典的图像分割算法 的Matlab代码。 238万源代码下载- www.pudn.com...

    文件名称: ncut_multiscale_1_6下载 收藏√  [ 5  4  3  2  1 ] 开发工具: matlab 文件大小: 587 KB 上传时间: 2015-04-17 下载次数: ...

  2. 误差分析计算公式及其 matlab 代码实现

    误差分析计算公式及其 matlab 代码实现(mse.mape.rmse等) - 李培冠 - 博客园

  3. music的matlab程序,DOA经典算法MUSIC的MATLAB代码(作者:Nikhil Shetty).pdf

    DOA经典算法MUSIC的MATLAB代码(作者:Nikhil Shetty) Direction of arrival estimation algorithms 作者:Nikhil Shetty ...

  4. MATLAB代码:计及碳排放交易及多种需求响应的微网 虚拟电厂日前优化调度

    MATLAB代码:计及碳排放交易及多种需求响应的微网 虚拟电厂日前优化调度 关键词:碳排放交易 需求响应 空调负荷 电动汽车 微网 虚拟电厂优化调度 参考文档:<计及电动汽车和需求响应的多类电力 ...

  5. MATLAB代码:含多种需求响应及电动汽车的微网/虚拟电厂日前优化调度 计及电动汽车和需求响应的多类电力市场下虚拟电厂竞标模型

    MATLAB代码:含多种需求响应及电动汽车的微网/虚拟电厂日前优化调度 关键词:需求响应 空调负荷 电动汽车 微网优化调度 虚拟电厂调度 参考文档: <计及电动汽车和需求响应的多类电力市场下虚拟 ...

  6. matlab中gad,10大经典算法matlab代码以及代码详解【数学建模、信号处理】

    [实例简介] 10大算法程序以及详细解释,包括模拟退火,禁忌搜索,遗传算法,神经网络.搜索算法. 图论. 遗传退火法.组合算法.免疫算法. 蒙特卡洛.灰色预测.动态规划等常用经典算法.是数学建模.信号 ...

  7. 【回归预测】基于TPA-LSTM(时间注意力注意力机制长短期记忆神经网络)实现数据多输入单输出回归预测附matlab代码

    1 内容介绍 随着当今时代科技不断地飞速发展,科技信息也在急剧增加,收集并挖掘分析这些来源多样化的科技信息,有助于推动科技的发展.而预测作为一种重要的数据研究方法,在各个行业各个领域都有着广泛的应用. ...

  8. 【故障诊断】基于粒子群和多元宇宙算法优化最大相关峭度解卷积(MCKD)实现信号处理附matlab代码

    1 内容介绍 1.1研究背景及意义 制造业的发展支撑着国家经济的稳定快速发展,是人民生活幸福和国家局势 稳定的保障.发展制造业离不开科技创新.加强制造业创新.推动产业转型升级是 提升我国国际地位.实现 ...

  9. 哈里斯鹰优化(HHO)算法(含MATLAB代码)

    先做一个声明:文章是由我的个人公众号中的推送直接复制粘贴而来,因此对智能优化算法感兴趣的朋友,可关注我的个人公众号:启发式算法讨论.我会不定期在公众号里分享不同的智能优化算法,经典的,或者是近几年提出 ...

最新文章

  1. solr5.5.4 添加mysql数据,实现同步更新
  2. HDU 4864 Task(2014多校--贪心)
  3. wpf 开源框架_.NET Core跨平台基础框架:10 篇热文汇总
  4. Apache Karaf配置远程调试
  5. Java中List集合的三种遍历方式(全网最详)
  6. Bootstrap3 表单-输出内联表单
  7. 《计算机技术领域当前的主流技术及其社会需求调查报告》
  8. 数据库表文档生成工具screw (螺丝钉)
  9. 将个人文件夹挂载到服务器上,通过 WebDAV 将服务器全部或某个文件夹挂载到电脑上当网络硬盘 | 很文博客...
  10. 《Region Proposal by Guided Anchoring》论文笔记
  11. 计算机考研数学考数学二的专业,考研常识:哪些专业考数学二?
  12. Python如何表示π值?
  13. m73p黑苹果_ThinkCentre M93z 吃上黑苹果
  14. 【PC】电子书阅读软件推荐
  15. 删除归档日志错误ORA-15028: ASM file '..' not dropped; currently being accessed
  16. Cornerstone忽略不必要的文件
  17. NumbericUtil工具类(实现数字及数字格式化的基本功能:精确的加减乘除法、金额数字转 成中文等。)
  18. 关于SATA磁盘修复方法介绍
  19. 电脑计算机显示脱机状态,电脑显示脱机状态是什么意思?
  20. 强烈推荐几款电脑必装软件!不装后悔系列!!!

热门文章

  1. Java集成第三方支付宝(会员卡)——文档篇
  2. devc 如何编写java,Android For JNI(1)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序,使用C启动JAVA程序...
  3. python爱心代码合集
  4. 智能化产业园区有哪些内容?该如何建设?
  5. Java 接口编程题练习
  6. 渲染引擎入门到精通一_导入模型的实现和解决fbxsdk的使用坑
  7. Centos7环境下安装WPS以及遇到的问题解决
  8. Ubuntu下升级安装gcc-7.5.0
  9. 基于CAN总线的汽车诊断协议UDS (网络层 ISO 15765)
  10. 做工控的朋友,留着可能有不时之需.2011工控破解,助你一臂之力!