Это очень и очень субъективно. Тем не менее, я лично думаю, что ваш лучший шанс - использовать яркость оттенка (HSL или HSV в этом отношении) и попытаться получить значение из разницы значений. Например что-то вроде:
value = a*abs(H1-H2)+b*abs(S1-S2)+c*abs(L1-L2);
и попытайтесь методом проб и ошибок найти лучшие a
, b
и c
константы, которые различают цвета в той же степени, что и ваш человеческий взгляд. Если вы знаете линейную регрессию, вы можете получить несколько образцов цветов с назначенными вами различиями и получить значения a
, b
и c
с линейной регрессией.
Более подходящая формула может содержать различия в степени 2 вместо abs
, например, и, что более важно, значения для a
, b
и c
как функции самих цветов, а не констант.