2

有一些公式,您可以提供 2 种颜色,并获得相似的颜色,

我最近想知道这是怎么做到的,它一直在我脑海中旋转,我有这个公式 atm。但这一个不起作用,因为我没有得到正确的答案。

   so you have to look for a different formula then this one.
   ∆E = √{ (L2 - L1)² + (A2 - A1)² + (B2 - B1)²  }

我有以下 L*a*b* 值

      L1 89,24  |   A1 -0,6     |       B1 = 91,29
      L2 81,61  |   A2 -2,72    |       B2 = 87,59

答案应该是:

∆E 3,99

有谁知道使用哪种计算来得到正确的答案?

4

1 回答 1

4

根据Bruce Lindbloom 的颜色计算器,使用您拥有的颜色值,如果您想获得 3.99 的 delta E,您应该在“纺织品”设置上使用CIE 1994 方程。

免费的 Python 实现:

import math

class Lab:
    def __init__(self, l, a, b):
        self.l = l
        self.a = a
        self.b = b

def cie1976(a, b):
    dl = a.l - b.l
    da = a.a - b.a
    db = a.b - b.b
    return math.sqrt(dl*dl + da*da + db*db)

def cie1994(x, y, isTextiles=True):
    k2 = 0.014 if isTextiles else 0.015
    k1 = 0.048 if isTextiles else 0.045
    kh = 1
    kc = 1
    kl = 2 if isTextiles else 1

    c1 = math.sqrt(x.a*x.a + x.b*x.b)
    c2 = math.sqrt(y.a*y.a + y.b*y.b)

    sh = 1 + k2*c1
    sc = 1 + k1*c1
    sl = 1

    da = x.a - y.a
    db = x.b - y.b
    dc = c1 - c2

    dl = x.l - y.l
    dh = math.sqrt(da*da + db * db - dc*dc)

    return math.sqrt((dl/(kl*sl))**2 + (dc/(kc*sc))**2 + (dh/(kh*sh))**2)

a = Lab(89.24, -0.6, 91.29)
b = Lab(81.61, -2.72, 87.59)

print cie1994(a,b)

结果:

3.99245887057
于 2013-01-08T13:59:08.633 回答