Skip to content

Instantly share code, notes, and snippets.

@usefulslug
Created April 22, 2021 19:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save usefulslug/a6ae17e2322e53be01d7aac2213d0749 to your computer and use it in GitHub Desktop.
Save usefulslug/a6ae17e2322e53be01d7aac2213d0749 to your computer and use it in GitHub Desktop.
Lab Delta E
public static float LabDeltaE(Lab labA, Lab labB)
{
var deltaL = labA.L - labB.L;
var deltaA = labA.a - labB.a;
var deltaB = labA.b - labB.b;
var c1 = Mathf.Sqrt(labA.a * labA.a + labA.b * labA.b);
var c2 = Mathf.Sqrt(labB.a * labB.a + labB.b * labB.b);
var deltaC = c1 - c2;
var deltaH = deltaA * deltaA + deltaB * deltaB - deltaC * deltaC;
deltaH = deltaH < 0 ? 0 : Mathf.Sqrt(deltaH);
var sc = 1.0f + 0.045f * c1;
var sh = 1.0f + 0.015f * c1;
var deltaLKlsl = deltaL / (1.0f);
var deltaCkcsc = deltaC / (sc);
var deltaHkhsh = deltaH / (sh);
var i = deltaLKlsl * deltaLKlsl + deltaCkcsc * deltaCkcsc + deltaHkhsh * deltaHkhsh;
return i < 0 ? 0 : Mathf.Sqrt(i);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment