Существует открытая реализация C # формулы CIE94, которую вы предоставили:
https://github.com/THEjoezack/ColorMine/blob/master/ColorMine/ColorSpaces/Comparisons/Cie94Comparison.cs
Требуется, чтобы ваши цвета находились в цветовом пространстве LAB, источник преобразования которого находится в той же библиотеке, если это необходимо.
Вы можете проверить свои расчеты cIE94 онлайн , используя ту же библиотеку.
Вот соответствующий фрагмент кода, labA и labB являются входными данными:
var deltaL = labA.L - labB.L;
var deltaA = labA.A - labB.A;
var deltaB = labA.B - labB.B;
var c1 = Math.Sqrt(Math.Pow(labA.A, 2) + Math.Pow(labA.B, 2));
var c2 = Math.Sqrt(Math.Pow(labB.A, 2) + Math.Pow(labB.B, 2));
var deltaC = c1 - c2;
var deltaH = Math.Pow(deltaA,2) + Math.Pow(deltaB,2) - Math.Pow(deltaC,2);
deltaH = deltaH < 0 ? 0 : Math.Sqrt(deltaH);
const double sl = 1.0;
const double kc = 1.0;
const double kh = 1.0;
var sc = 1.0 + Constants.K1*c1;
var sh = 1.0 + Constants.K2*c1;
var i = Math.Pow(deltaL/(Constants.Kl*sl), 2) +
Math.Pow(deltaC/(kc*sc), 2) +
Math.Pow(deltaH/(kh*sh), 2);
var finalResult = i < 0 ? 0 : Math.Sqrt(i);
«Константы» определяются в зависимости от типа вашего приложения:
case Application.GraphicArts:
Kl = 1.0;
K1 = .045;
K2 = .015;
break;
case Application.Textiles:
Kl = 2.0;
K1 = .048;
K2 = .014;
break;