数字图像处理 色差计算

方法一:

计算两个像素点的rgb的两个三维向量的夹角:

l1 = Math.sqrt(r1 * r1 + g1 * g1 + b1 * b1);   
l2 = Math.sqrt(r2 * r2 + g2 * g2 + b2 * b2);
cos(a) = (r1 * r2 + g1 * g2 + b1 * b2) / (l1 * l2); 

方法二:

转HSI,计算两个三维向量距离:

Math.sqrt((r1 - r2) * (r1 - r2) + (g1 - g2) * (g1 - g2) + (b1 - b2) * (b1 - b2))

即颜色空间的距离。距离越大,差距就越大

方法三:

LAB颜色空间,两个颜色之见的色差:ΔE=( ΔL^2 + ΔA^2 + ΔB^2 ) ^ (1/2)

ΔE 表示色差,ΔL/ΔA/Δb分别表示两个颜色之间在不同分量的差值。为了简化计算在RGB空间上通过公式计算出加权的欧式距离。

def ColourDistance(rgb_1, rgb_2):
     R_1,G_1,B_1 = rgb_1
     R_2,G_2,B_2 = rgb_2
     rmean = (R_1 +R_2 ) / 2
     R = R_1 - R_2
     G = G_1 -G_2
     B = B_1 - B_2
     return math.sqrt((2+rmean/256)*(R**2)+4*(G**2)+(2+(255-rmean)/256)*(B**2))
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坐望云起

如果觉得有用,请不吝打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值