Вычитание цвета RBG или CIElab - PullRequest
0 голосов
/ 26 июня 2018

Я прочитал несколько тем здесь и, согласно ответам, нет точного решения. В любом случае, давайте предположим, что у нас есть палитра цветов RGB (0-255,0-255,0-255) и два цвета, один исходный несмешанный, а другой смешанный, тогда как мне точно вычесть, чтобы найти, какой из них был добавлен? Это действительно работает как

z - y = x?

Есть ли какие-нибудь исследовательские формулы?

Другой вопрос: если применить преобразование CIElab для получения яркости насыщенности оттенка, то как их применить для вычитания цветов?

1 Ответ

0 голосов
/ 27 июня 2018

Вы имеете в виду аддитивное смешение цветов?

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

См. https://en.wikipedia.org/wiki/SRGB#Specification_of_the_transformation для формулы для применения Гаммы и отмены ее применения: C является каналом (R, G, B, каждый), C_linear является линейным пространством (где вы можете добавлять и вычитать интенсивности) C_srgb - это значение канала, которое мы используем на компьютерах. Примечание: вы должны разделить и умножить на 255, чтобы нормализовать значения от 0 до 1.

Для обычного смешения цветов (краски, чернила, красители и т. Д.) Это сложно, но в таком случае предпочтительнее было бы использовать CIExyz: на самом деле в таком пространстве результат смешения находится на линии между двумя оригинальные цветности. К сожалению, модель не говорит вам, где будет результат в пределах этой линии. Обычно требуется больше данных о каждом цвете (часто вместо триплета RGB, вектор из около 60 элементов [поэтому данные каждые 5 нм))

...