2010-07-12 3 views
4

Я кодирую программу, которая позволяет пользователю выбирать различные цвета переднего плана и фона в RGB. Я хочу, чтобы они не позволяли им выбирать передний план и фоны, которые слишком похожи, и решили конвертировать в HSL и использовать эвклидовое расстояние HSL, чтобы проверить сходство.Измерение расстояния между цветами HSL

Есть ли хорошее взвешивание для использования в пространстве HSL (а не в равном весе для H, S и L)? Я смотрел на разные сайты и не нашел точной вещи, в которой я нуждался; просто сказать, что HSL или HSB лучше, чем RGB.

ответ

1

У меня нет точных цифр для вас, но я бы использовал намного больший вес для L, чем H или S. Глаз плохо различил между равными цветами различной насыщенности и почти так же плохо различил разные оттенки - особенно, если это мелкие детали, которые вы пытаетесь увидеть, например текст.

4

сначала конвертировать цвета в Lab. Это цветовое пространство сконструировано так, что векторная разница между любыми двумя цветами близко приближается к «субъективному расстоянию».

В управлении цветом, значение «delta E» задается как показатель того, насколько перцепционно верно данное преобразование цвета. это просто величина векторной разницы между оригинальным и окончательным цветами, выраженная в лабораторном пространстве.

3

Моим советом было бы полностью пропустить HSL/HSB и перейти непосредственно от RGB to LAB. Как только вы это сделаете, вы можете сделать стандартное вычисление delta E.

Смежные вопросы