zoukankan      html  css  js  c++  java
  • 色差计算度量

    色差计算度量

    1.       CIE L*函数

    将相对亮度(Y/Yn)映射为亮度(L∗)的CIE方程由两个独立的函数组成f()和g()

     

     

     这两个函数在ϵ,我称之为交叉点。两个常数κ,ϵCIE标准规定:

     

     通过对两个功能的连接点进行特写,可以看到此中断。在下面的动画中,f()是用蓝色画的g()是用红色画的。当我们放大连接点时,不连续变得明显:

     

     可见,函数不仅是不连续的,而且是非单调的,这使得它在这个区域是不可逆的。交界处的斜坡呢?我们可以用一阶导数来比较它们。

     

     再次进行替换表明在连接点处坡度也不匹配:

     

     如果我们想找到修正常数 

    ,如果同时提供函数和斜率连续性,则必须在接合点匹配函数及其一阶导数:

     

     变换后得到

     

     求常数,表明它们的值可以用有理数精确表示:

     

     使用这些值代替已发布的CIE值可以在连接点处提供完美的函数和坡度连续性:

     

     CIE决定将这些常数表示为十进制值,这是一种不必要的近似,同时引入了函数和斜率不连续性。

    如果你检查CIE方程在XYZ和Lab之间的转换,你会发现常数7.787。通过将上述分析扩展到这些方程中,您将发现这个常数的确切值是有理数。

    通过使用上述值,将修复XYZ、Lab、LCHab、Luv和LCHuv之间已发布的CIE转换中存在的函数不连续性、非单调性、反演失败和斜率不连续性。

    2. 色差计算

    色差即两个颜色的差异。一般地,在特定的条件下,人眼可以比较容易的分辨两个颜色样品是否有差异。在实际应用中,尤其是工程计算中,需要将这种差异用数学公式来量化表示,即色差公式。色差的计算是颜色科学的一个重要课题,到现在已经有了80多年的发展历史。

    要建立色差计算公式,并不是一件简单的事情,首先就需要一个模型来描述颜色,目前应用最广泛的就是CIE1931-XYZ标准色度系统。

    CIE1931-XYZ(CIE: 国际照明委员会) 是1931年由CIE推荐的色度系统,大部分颜色测量、计算大都采用这一系统。但是这个系统模型采用的三刺激值或者色品坐标,都与颜色感觉没有直接的对应关系,并不均匀,大家可以对照图1看看,在CIE1931xy色品图上,绿色区域,变化较大时,人眼才能分辨出两个颜色的差异(圈儿大),但在蓝紫色区域,较小的变化,就能引起视觉差异(圈儿小)。因此,CIE1931-XYZ不能用来计算色差。因此,寻找均匀的颜色空间,进而描述色差,成为了这个领域人们的重要研究方向。

      

    图1 麦克亚当[1]椭圆 (图片来源:参考资料[2]

    CIE1976LAB:自1931年起,专家们先后提出了几十种均匀的颜色空间,在1976年之前,CIE就分别推荐了CIE1960UCS和CIEWUV两种空间,但都不是很理想。直到1976年,CIE向大家推荐了CIE LAB 色空间,具有很好的视觉均匀性、可以很好的描述色差。这个模型与CIEXYZ色度系统之间的转换关系如下:

     

     Xn,Yn,Zn是照明体的三刺激值。在CIELAB色空间,彩度(chroma)和色调角(hueangle)的定义是这样的:

     

     注:这也叫CIEL*C*h*或CIELCH色空间。

    由此,CIELAB色空间的色差公式的定义为:

     

     细心的读者有可能发现了,这个就是三维空间的欧式距离啊,没错,CIELAB色空间色差的定义就是两个颜色在CIELAB色空间的欧式距离。这个公式一直沿用至今,现在依然是图像相关的领域很多公司的首选色差公式,虽然CIE一直在“强烈推荐”CIEDE2000。

    然而,CIELAB色空间并非那么完美!

    在CIELAB色空间中,色差是两个颜色坐标点的欧式距离,那意味着,只要距离相同,无论在哪个颜色区域,无论颜色的变化方向如何,色差都应该一样。实际情况是CIELAB并不完全均匀,不同区域的颜色、不同的方向,变化并非一致。相同色差感觉的实际区域,不是一个球形,而是一个椭球!因此,后来色差公式的改进,大部分都是以CIELAB为基础,在这个椭球上做文章,比如CMC(l:c)。

    CMC(l:c) (CMC:英国颜色测量委员)色差公式基于CIELAB,作了一些修正,具体公式如下:

     式中,纺织行业将lc的取值设定为l = 2,c =1,SL,SC,SH分别是亮度、彩度、色调角的修正系数,具体取值如下:

     经过修正,在CIELAB色空间一个个的圆球(二维平面就是圆形),就变成了一系列的椭球(椭圆),如图二所示。

     

      

    图2 CMC(l:c)色差椭圆

    CIE94色差公式和CMC类似,也是对CIELAB色差公式的修正,不同之处在于修正系数不一样,CIE94的色差公式和修正系数分别如下:

     不论CMC还是CIE94,并没有提出新的色空间,只是针对CIELAB色差公式,分别给亮度、彩度、色调添加了一些修正系数,色差公式的基本结构都是类似甚至相同的。这一结构,也是很多色差公式采用的标准形式。CIE94计算较为简单,得到了一些应用场景的认可,但是这个公式的改善效果并不理想。

    CIEDE2000:2001年,在经过了大量色差样本的评估、大量的视觉实验的基础上,CIE正式向大家推荐了CIE DE2000色差公式。公式和修正系数如下:

     

     CIEDE2000现在是CIE主要推广的色差公式,事实上,大家也应该尽可能的用这个色差公式。如果大家以前的数据库都是CIELAB的,只要保留了原始的LAB色度数据,就可以用CIE2000公式重新计算。

    下图为一个常见的用于测试颜色准确性的色差图。图里的椭圆就是4倍的CIEDE2000单位椭圆,借助椭圆,大家可以估计颜色还原的偏离程度及其在视觉感知上的差异性。

      

    图3 CIEDE2000椭圆(图像用Imatest软件生成,图中参数请参考[4])

    以上四个色差公式,是大家在一些常见的颜色、图像软件中可以看到的。但实际上,色差公式远不止这些,从CIE1931色度系统建立之后,就出现了多达几十种色差公式,下面简单罗列几个具有代表性的公式。

    Adams-Nickerson公式(1942

    这个公式是对CIEXYZ色空间的不均性的修正,下面公式里的VX,VY,VZ就是由CIEXYZ变换而来。

     

     Hunter公式(1948

    这个公式的色差计算与CIE1976公式类似,但是色度值LAB计算方法与CIELAB不一样。

     

     公式里的XYZ与CIEXYZ的定义相同,用这个公式里的LAB也叫Hunter-LAB。

    CIELUV公式(1976)

    CIELUV是与CIELAB几乎同时期的色空间,因其u' v'的计算方法的特性,使其在光源、显示等领域得到了非常广泛的应用。CIELUV色空间的计算方法及色差公式如下:

     

  • 相关阅读:
    77. Combinations (Recursion)
    90. Subsets II (Back-Track, DP)
    78. Subsets (Back-Track, DP)
    131. Palindrome Partitioning (Back-Track, DP)
    41. First Missing Positive (HashTable)
    49. Group Anagrams (string, HashTable)
    76. Minimum Window Substring (String, Map)
    Leetcode Intersection of Two Linked Lists
    Cocos2d-js 开发记录:基本图形绘制
    Cocos2d-js 开发记录:骨骼动画载入
  • 原文地址:https://www.cnblogs.com/wujianming-110117/p/12684958.html
Copyright © 2011-2022 走看看