Что такое хорошая метрика цветового сходства?


8

У меня есть несколько цветов в RGB в [0,1], и я хочу найти способ оценить их сходство с точки зрения человека.

Я имею в виду две идеи, но я уверен, что есть и другие варианты, но я не уверен, что лучше, или, возможно, нет лучшего, а только компромиссы.

Моя первая идея - рассматривать цвета RGB как точки XYZ и вычислять их расстояние.

Другая идея, которую я имею, состоит в том, чтобы рассматривать значения RGB как гистограмму и использовать точечное произведение, чтобы получить значение сходства между ними, где большее значение лучше.

Однако я знаю, что не все цветовые каналы имеют одинаковую воспринимаемую яркость, поэтому, возможно, мне следует по-разному взвешивать цветовые каналы в обоих случаях?

Я также думаю, что, возможно, мне нужно будет выполнить коррекцию sRGB для значений цвета (например, sqrt для каждого цветового канала).

Я также знаю, что существуют другие цветовые пространства, так что, возможно, в одном из них было бы лучше дать значение сходства.

Другая проблема может заключаться в том, что разные дисплеи будут отображать одинаковые значения цвета по-разному. Не уверен, что это актуально в этом случае.

Кто-нибудь может предоставить некоторую помощь / направление?


4
Вы смотрели на это ? RGB не является хорошим цветовым пространством для сравнений, связанных с человеческим восприятием.
тузы

Хорошая информация спасибо! Я смотрел на cielab, но в этой статье говорится, что это не самое лучшее. К сожалению, я работаю с исходными данными RGB, поэтому мне нужно выяснить, как преобразовать RGB в нечто лучшее, но, похоже, проблема в том, что RGB зависит от устройства, в то время как, например, cielab - нет. К счастью, для моих нужд достаточно небольшого приближения, если независимость от устройства на самом деле невозможна с исходными данными RGB.
Алан Вульф

Зайдите на сайт Брюса Линдблума, особенно о различных показателях DeltaE
Дэвид Кури

Существует целый пакет Python для науки о цвете, который включает в себя некоторые преобразования: colour-science.org .
KAE

Ответы:


3

У меня есть несколько цветов в RGB в [0,1], и я хочу найти способ оценить их сходство с точки зрения человека.

Это огромный предмет, который можно найти под знаменем цветовой гаммы моделей . Почему это не строго более простое образование из-за психофизической природы цвета в том, что цвет не существует вне человеческого организма.

Моя первая идея - рассматривать цвета RGB как точки XYZ и вычислять их расстояние.

Другая идея, которую я имею, состоит в том, чтобы рассматривать значения RGB как гистограмму и использовать точечное произведение, чтобы получить значение сходства между ними, где большее значение лучше.

Однако я знаю, что не все цветовые каналы имеют одинаковую воспринимаемую яркость, поэтому, возможно, мне следует по-разному взвешивать цветовые каналы в обоих случаях?

Лучший совет, так же как и криптография, не бросайте свой собственный; вы, вероятно, придете к неоптимальной системе, которая в лучшем случае будет поражать стены, уже пораженные другими исследователями в этой области. Если вы основываете свою работу на существующих моделях и исследованиях, вы можете найти ее более точной для своих нужд [1].

Можно указать на исторические события вокруг CAM, но здесь проще предложить вам изучить модель цветового кодирования IPT и ее цилиндрический эквивалент, который моделирует цвет и оттенок как угол. Эволюция модели IPT преодолевает большинство проблем предыдущей модели Lab и упрощает некоторые из работ, связанных с CIECAM02.

Другая проблема может заключаться в том, что разные дисплеи будут отображать одинаковые значения цвета по-разному. Не уверен, что это актуально в этом случае.

IPT и каждое цветовое пространство RGB в этом отношении закреплены в исследовании CIE 1931 года. Таким образом, такого рода проблемы решаются на более низком уровне.

[1] Этот расширенный ответ объясняется комментарием г-на Вулфа, приведенным ниже, в попытке объяснить, почему использование собственного решения может быть неоптимальным подходом.


3
Отговаривать людей от экспериментов с графикой и ставить их в один ряд с поставляемыми вручную криптографическими алгоритмами - просто смешно.
Алан Вульф

@AlanWolfe Учитывая, что существует довольно много выдающихся кандидатов наук, которые уже потратили бесчисленные часы и усилия на решение проблем в первоначальном вопросе, я считаю ваш контекст смешным. Не препятствуйте тому, чтобы кто-то заполнил их ботинки и попытался изобрести колесо.
troy_s

Вы должны услышать простые хаки, рекомендованные активными исследователями графики. Например, «точечный продукт RGB, он действительно работает на удивление хорошо» от Питера Ширли.
Алан Вульф

2
Я пошел дальше, но есть применение коллапса волновой функции для процедурного изображения и создания контента. Частично он работает с точным совпадением пикселей, поэтому лучше всего работает с пиксельной графикой. Я ожидал увидеть, что можно было бы сделать более мягкое соответствие для использования с более реалистичными изображениями или для менее строгих процедурных правил содержания. Проверьте эту ссылку для основной вещи: github.com/mxgmn/WaveFunctionCollapse
Алан Вулф

2
Это не моя работа, но я пытался ее расширить. Я полностью согласен, это классные вещи! Не по теме, но вот моя не связанная работа хе-хе. blog.demofox.org/2016/02/22/…
Алан Вульф

4

Если комплексная метрика приемлема, я бы предложил взглянуть на подход, основанный на восприятии, описанный здесь . Метрика предназначена для выбора восприятия разницы двух изображений. Для этого есть два основных теста: на основе яркости и цвета. Первый позволяет ответить на вопрос, насколько важно изменение яркости, оценивая неоднородный пороговый коэффициент на основе чувствительности к контрастным изменениям в зависимости от пространственных частот изображения. Второй основан на евклидовом расстоянии в цветовом пространстве CIE LAB, но немного изменен, чтобы сделать разницу в цвете менее важной, когда яркость находится в мезопическом и скотопическом диапазонах. Список документов, связанных с этой метрикой, можно найти здесь .


3
Добро пожаловать в компьютерную графику SE! В общем, ответы только на ссылки настоятельно не рекомендуются для SE, потому что они могут стать бесполезными, если эти ссылки когда-либо прекратятся. Пожалуйста, включите краткое резюме их содержания, чтобы люди все еще могли понять, что именно вы на самом деле предлагаете, не полагаясь на ссылки.
Мартин Эндер
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.