色差计算

python计算色差
参考:https://blog.csdn.net/lz0499/article/details/77345166

def rgb2xyz(x,y,z):
    x = x/255.0
    y = y/255.0
    z = z/255.0
    xnew = 0.4124564*x + 0.3575761*y + 0.1804375*z
    ynew = 0.2126729*x + 0.7151522*y + 0.0721750*z
    znew = 0.0193339*x + 0.1191920*y + 0.9503041*z
    return xnew, ynew, znew


def xyz2Lab(x,y,z):
    x = x/0.950456
    y = y/1.0
    z = z/1.088754
    
    if x>0.008856:
        xx = x**(1.0/3)
    else:
        xx = 7.787*x + 4.0/29
    
    if y>0.008856:
        yy = y**(1.0/3)
    else:
        yy = 7.787*y + 4.0/29
    
    if z>0.008856:
        zz = z**(1.0/3)
    else:
        zz = 7.787*z + 4.0/29
        
    L = 116.0*yy-16.0
    if L<0:L=0
    a = 500.0*(xx-yy)
    b = 200.0*(yy-zz)
    return L,a,b

def calcDeltaE(r1,g1,b1,r2,g2,b2):
    x1, y1, z1 = rgb2xyz(r1,g1,b1)
    x2, y2, z2 = rgb2xyz(r2,g2,b2)
    
    L1, A1, B1 = xyz2Lab(x1, y1, z1)
    L2, A2, B2 = xyz2Lab(x2, y2, z2)
    
    print(r1,g1,b1)
    print(r2,g2,b2)
    # print(L1,A1,B1)
    # print(L2,A2,B2)
    
    deltaE = ((L1-L2)**2 + (A1-A2)**2 + (B1-B2)**2)**0.5
    print(deltaE)

calcDeltaE(140,173,186,   141,173,187)
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值