Есть ли простой способ сравнить, насколько близки два цвета друг к другу? - PullRequest
24 голосов
/ 29 января 2009

Есть ли способ сравнить, насколько близки два цвета друг к другу? Если сказать, что они оба синего цвета.
На данный момент мы сравниваем их, назначая каждый возможный цвет для семейства цветов (красный, зеленый, синий ...) вручную. А потом просто сравните строки:)
Но, конечно же, эту ручную задачу можно поручить аккуратному маленькому алгоритму.

Ответы [ 3 ]

22 голосов
/ 29 января 2009

Возможно, вы захотите преобразовать цвета в модель HSL (Hue, Saturation, Lightness) и затем сравнить значения в пределах порогов в порядке HSL. Если оттенок находится в пределах допуска, который считается «близким», то проверьте «близость» насыщенности, а затем яркость.

9 голосов
/ 20 июля 2013

Delta-e , это одно число, представляющее воспринимаемое «расстояние» между двумя цветами. Чем меньше число, тем больше цвета похожи на человеческий глаз.

Существует несколько различных способов его расчета ... CIE76 (он же CIE 1976 или dE76) является самым популярным.

Каждый говорит о вещах по-своему, но по большей части все они требуют от вас преобразования в лучшую (для сравнения) цветовую модель, чем RGB.

Для CIE76 вы просто конвертируете свои цвета в цветовое пространство LAB, а затем вычисляете трехмерное расстояние между ними.

В Википедии есть все формулы: http://en.wikipedia.org/wiki/Color_difference

Вы можете проверить свою работу с онлайн-калькуляторами цвета:

9 голосов
/ 29 января 2009

Я не уверен ни в каких алгоритмах, вы можете рассмотреть возможность преобразования значений RGB (красный, зеленый, синий) в HSB (оттенок, насыщенность, яркость).

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

См. http://en.wikipedia.org/wiki/HSV_color_space

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...