Существует ли перцептуальное сравнение DeltaRGB двух цветов (например, DeltaE2000)? - PullRequest
0 голосов
/ 14 октября 2008

Существует ли надежная формула Delta RGB или фрагмент кода, который окрашивает Delta полных значений три стима RGB, например, как DeltaE 2000 / cmc делает Lab / Lch, который учитывает воспринимаемые различия?

RGB Colourspace может быть любым, но если он должен быть конкретным, я могу оставить его sRGB для расчетов. C # предпочтительнее, но я могу конвертировать с любого языка.

В настоящее время у меня есть очень простая дельта-формула RGB, но я хотел бы реализовать что-то, что дает более правдоподобное ощущение воспринимаемой цветовой разницы. Текущий сейчас

float delta = Math.Sqrt(Math.Pow(r1-r2, 2) + Math.Pow(g1-g2, 2) + Math.Pow(b1-b2, 2));

Это похоже на DeltaE 76 (лаборатория), но имеет те же недостатки, что и разница восприятия не учитывается.

ПОЖАЛУЙСТА, не просто выполните поиск в Google и вставьте первое, что вы видите! Существует множество формул Delta RGB, которые могут быть найдены, но не учитывают различия в восприятии. Если вам это известно, прокомментируйте и / или вставьте любые ссылки на примеры кода. Кроме того, у меня уже есть преобразование из RGB в Lab / Lch, а затем в De2000 / cmc. Я не ищу этого.

Ответы [ 2 ]

2 голосов
/ 16 октября 2008

Боюсь, вы уже дали единственно правильный ответ: преобразование в воспринимаемое цветовое пространство, где имеет смысл простая дельта-формула.

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

1 голос
/ 09 марта 2009

На всякий случай, если вы их не нашли:

...