Яркость в два цвета
Скорее всего, это будет очень простая вещь, которую я пытаюсь сделать, но поиск в Google не нашел именно то, что я ищу, и я хотел бы сделать это правильно.
По сути, мне нужно, чтобы яркость соответствовала двум точкам зрения. Они представляют собой простые круги (125x125 пикселей), и их первоначальный цвет известен только по их значению RGB (0-255 в диапазоне) 255,0,0. Мне нужно найти значение RGB серого, которое равно яркости этих кругов.
Все другие учебные пособия по яркости / яркости, которые я видел, были для включенных изображений, различных оттенков, яркости и т. Д., И я не уверен, будут ли эти методы работать в этом (по общему мнению, более простом) случае.
Я надеюсь, что смогу просто выяснить значения RGB, чтобы я мог ввести их в программу построения экспериментов, но у меня есть доступ к GIMP, если какой-либо из его инструментов необходим или поможет.
Я прошу прощения за этот, вероятно, простой вопрос, но я мало знаю о графике, мерах яркости и т. Д. Я ценю любую помощь, которая может быть предоставлена.
ДОБАВЛЕНИЕ: Я действительно думаю, что это было бы хорошим местом, чтобы задать еще один вопрос. Существует ли формула для преобразования канделы в (возможно, приблизительные?) Значения RGB? Я свободно основываю эти значения цвета на значениях канделы и хотел бы знать, существует ли уравнение / способ их уравновешивания.
2 ответа
Вы должны быть осторожны с цифровыми изображениями, соответствующими яркости, потому что фактическая яркость зависит от того, как они отображаются. В частности, вы хотите остерегаться "гамма-коррекции", которая представляет собой нелинейное отображение между значениями RGB и фактической яркостью дисплея. Некоторые изображения могут иметь внутреннее значение "гаммы", связанное с самими данными, и многие устройства отображения эффективно применяют "гамму" к отображаемым ими значениям RGB.
Однако для изображения, сохраненного и отображенного линейно (с эффективной гаммой 1), существует стандартная мера яркости для значений RGB:
Y = 0.2126 * R + 0.7152 * G + 0.0722 * B
На самом деле существует ряд стандартов с разными весами для линейных компонентов R, G и B. Однако, если вы не уверены, как именно будет отображаться ваше изображение, вы можете выбрать одно и придерживаться его...
В любом случае, вы можете использовать это для решения вашей конкретной проблемы следующим образом: вы хотите серое значение (r,g,b) = (x,x,x)
с той же яркостью, что и чистое красное значение 255. Удобно, что три константы яркости суммируются в 1.0
, Это дает вам следующую формулу:
Y == 1.0 * x == 0.2126 * 255
--> x ~ 54
Если вы хотите подобрать другой цвет или использовать другой вес яркости (который по-прежнему составляет 1.0
), процедура такая же: просто взвесьте значения RGB в соответствии с формулой яркости, затем выберите значение серого, равное яркости.
Я считаю, что уже даный ответ вводит в заблуждение (ТАК не позволяет мне комментировать). Как уже упоминалось, данная формула относится к интенсивностям, и вам следует остерегаться гаммы, см., Например, здесь:
http://www.poynton.com/notes/colour_and_gamma/GammaFAQ.html
Таким образом, пример приложения должен использовать коэффициенты, которые учитывают гамму, или компенсировать гамму вручную, а это не так. Да, изображение может быть линейным (поэтому у вас есть фактические интенсивности), но, судя по описанию, вероятность близка к нулю.
Эти коэффициенты дают "яркость", а не яркость, но это то, что вы просили в любом случае. Увидеть:
http://www.poynton.com/notes/colour_and_gamma/ColorFAQ.html
Подвести итоги:
люма = 0,299 R + 0,587 G + 0,114 B
(r, g, b) = (яркость, яркость, яркость)
Материал также должен помочь с вашим дополнительным вопросом. Я нашел, что это очень надежно, что, безусловно, является исключением в этой области.