Как определить, похожи ли два или несколько цветов?

Есть несколько цветов. Допустим, 1 фиолетовый, 2 розовый, 3 красный, 4 синий. Их значения заданы в формате RGB
Есть базовый цвет, например — бордовый.

Задача расположить цвета в порядке убывания их похожести на базовый. Похожести с точки зрения нормального человека (не дальтоника).

Например, для бордового это красный>розовый>фиолетовый>синий.

А по какому алгоритму это человек делает? Нужно симулировать такой алгоритм на компьютере. Понятно, что есть разные люди и алгоритм может отличаться весовыми коэффициентами. Но как это сделать в общем?
Можете кинуть ссылками, что почитать на этот счет?
  • Вопрос задан
  • 6426 просмотров
Решения вопроса 1
anmipo
@anmipo
Формула цветового отличия (англ. Color difference), также формула цветового различия, цветоразность, или цветовое расстояние (расстояние между цветами) — математическое представление, позволяющее численно выразить различие между двумя цветами в колориметрии.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Chii
имхо: это совокупность положения цвета в радуге, яркости и насыщенности
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Дистанция по 3-м каналам: R,G,B (прозрачность - по желанию)
_base - это каналы базового (опорный, эталонный) цвета, относительно которого проверяем.
R,G,B - каналы проверяемого цвета:
R=abs(Rbase-R)
G=abs(Gbase-G)
B=abs(Bbase-B)
D=(sqrt(R^2+G^2)+sqrt(G^2+B^2)+sqrt(B^2+R^2))/3

где D - удаленность проверяемого цвета от базового.
Сортируем D в нужном порядке для каждого цвета и получаем похожесть в зависимости от сортировки.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы