Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Aqua: R: 235, G: 173, B: 219
- //Ina iofi: R: 250, G: 199, B: 226
- //Regular iofi: R: 250, G: 236, B: 236
- /**
- * calculate the perceptual distance between colors in CIELAB
- * https://github.com/THEjoezack/ColorMine/blob/master/ColorMine/ColorSpaces/Comparisons/Cie94Comparison.cs
- *
- * @param {Array} labA First LAB color in array
- * @param {Array} labB Second LAB color in array
- */
- function deltaE(labA, labB){
- var deltaL = labA[0] - labB[0];
- var deltaA = labA[1] - labB[1];
- var deltaB = labA[2] - labB[2];
- var c1 = Math.sqrt(labA[1] * labA[1] + labA[2] * labA[2]);
- var c2 = Math.sqrt(labB[1] * labB[1] + labB[2] * labB[2]);
- var deltaC = c1 - c2;
- var deltaH = deltaA * deltaA + deltaB * deltaB - deltaC * deltaC;
- deltaH = deltaH < 0 ? 0 : Math.sqrt(deltaH);
- var sc = 1.0 + 0.045 * c1;
- var sh = 1.0 + 0.015 * c1;
- var deltaLKlsl = deltaL / (1.0);
- var deltaCkcsc = deltaC / (sc);
- var deltaHkhsh = deltaH / (sh);
- var i = deltaLKlsl * deltaLKlsl + deltaCkcsc * deltaCkcsc + deltaHkhsh * deltaHkhsh;
- return i < 0 ? 0 : Math.sqrt(i);
- }
- let aqua = [77.67, 29.83, -14.26];
- let iofi_ina = [85.33, 22.31, -6.46];
- let iofi_base = [94.47, 4.72, 1.68];
- console.log(deltaE(aqua, iofi_ina));
- console.log(deltaE(iofi_ina, aqua));
- console.log(deltaE(iofi_base, iofi_ina));
- console.log(deltaE(aqua, iofi_base));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement