Скачать MetaTrader 5

Функция определения яркости цвета (идентичная восприятию яркости цвета человеком)

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Форматируй текст в редакторе сообщений. Это удобно!
Dmitry Fedoseev
42902
Dmitry Fedoseev 2012.04.23 16:38 

Глядя на это решил сделать что-то подобное, но чтобы цвета гармонично подбирались. Как получить разные, гармонично сочетаемые, цвета - это не вопрос, известная тема.

Столкнулся со следующей проблемой. Например, два цвета: Lime (rgb(0,255,0)) и Blue (rgb(0,0,255)) - по цифрам у них одинаковая яркость, однако Lime выглядит как яркий, на нем лучше писать черным цветом, а Blue - темный, на нем лучше писать белым цветом. Это одна задача - определить каким цветом делать надписи (черным или белым).

Есть еще посложнее задача - сетка. Сетка должна быть серая, по яркости не сильно отличающаяся от фона и при этом, для разных цветов фона, разница яркости фона и сетки должна казаться одинаковой. Здесь, надо определить по цвету яркость (не по цифрам, а кажущуюся человеку яркость), по это яркости вычислить серый цвет, сдвинуть его, притом, что сдвигать нужно на разную величину для разных цветов.

Кому-нибудь что-нибудь известно на эту тему?

Ps. Решил поразвлекаться на досуге с раскрасочкой, а задачка-то оказалась огого!

Комбинатор
15924
Комбинатор 2012.04.23 16:43  
Integer:

Ps. Решил поразвлекаться на досуге с раскрасочкой, а задачка-то оказалась огого!

А то :)

Надо будет RGB преобразовывать к например вот или вот

LAB — Википедия
  • ru.wikipedia.org
Lab — аббревиатура названия двух разных (хотя и похожих) цветовых пространств. Более известным и распространенным является CIELAB (точнее, CIE 1976 L*a*b*), другим — Hunter Lab (точнее, Hunter L, a, b). Таким образом, Lab — это неформальная аббревиатура, не определяющая цветовое пространство однозначно. Чаще всего, говоря о пространстве Lab...
Andrew Petras
4663
Andrew Petras 2012.04.23 17:02  
Если речь о гамма-коррекции, на вики формула есть, а вот универсальных таблиц не встречал. Не уверен, что вообще есть универсальные, они вроде затачиваются программно-аппаратно, если можно так выразиться.
Dmitry Fedoseev
42902
Dmitry Fedoseev 2012.04.23 17:12  
TheXpert:

А то :)

Надо будет RGB преобразовывать к например вот или вот

Оно :)
Dmitry Fedoseev
42902
Dmitry Fedoseev 2012.04.23 17:16  
Silent:
Если речь о гамма-коррекции, на вики формула есть, а вот универсальных таблиц не встречал. Не уверен, что вообще есть универсальные, они вроде затачиваются программно-аппаратно, если можно так выразиться.

Не открывается у меня ссылка, напишите просто текстом.

Здесь у нас аппратом является глаз, вот что пишут:

Комитет CIE провёл множество экспериментов с огромным количеством людей, предлагая им сравнивать различные цвета, а затем с помощью совокупных данных этих экспериментов построил так называемые функции соответствия цветов (color-matching functions) и универсальное цветовое пространство (universal color space), в котором был представлен диапазон видимых цветов, характерный для среднестатистического человека. 

http://ru.wikipedia.org/wiki/XYZ 

 

Andrew Petras
4663
Andrew Petras 2012.04.23 17:18  

http://ru.wikipedia.org/wiki/Гамма-коррекция

upd я вот об этом:

"Гамма-коррекция (Gamma correction) обеспечивает компенсацию для различий в отображаемых цветах на различных устройствах вывода так, чтобы изображение выглядело одинаково при просмотре на различных мониторах. Значение гамма, равное 1, соответствует «идеальному» монитору, то есть такому, который имеет совершенно линейную зависимость отображения от белого к черному." 

http://superbiblioteka.ru/cifrovoe-foto-polnyi-kurs/glava-9-cifrovaja-laboratorija/monitory-ih-parametry-i-nastroika/gama-korekcija.html

у Adobe есть утиль Gamma, тут немного о методе http://digital-master.ru/?p=81 может из нее что то получится выжать

Гамма-коррекция — Википедия
Гамма-коррекция — Википедия
  • ru.wikipedia.org
Гамма-коррекция изначально служит: для демонстрации изображений на устройствах вывода с нелинейной яркостной характеристикой; для хранения оцифрованного изображения в форме, где на темные цвета приходится меньший относительный шум квантования, чем на светлые. Исторически введение гамма-коррекции было обусловлено тем, что у...
Andrew Petras
4663
Andrew Petras 2012.04.23 17:40  
Integer:

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

Вот если правильно понимаю, одной таблице цветов (фоновой)

в виде R*gamma1G*gamma1B *gamma1 должна соответствовать таблица

цветов картинки  R*gammaG *gamma2B *gamma2.

там http://ru.wikipedia.org/wiki/Гамма-коррекция картинка есть, Пример гамма-коррекции изображения на ЭЛТ. Кривая вроде "не случайно" кривая, какая-то функция, и зеркальная для двух кривых. 

Гамма-коррекция — Википедия
Гамма-коррекция — Википедия
  • ru.wikipedia.org
Гамма-коррекция изначально служит: для демонстрации изображений на устройствах вывода с нелинейной яркостной характеристикой; для хранения оцифрованного изображения в форме, где на темные цвета приходится меньший относительный шум квантования, чем на светлые. Исторически введение гамма-коррекции было обусловлено тем, что у...
Nikolay Demko
12465
Nikolay Demko 2012.04.23 17:42  
Integer:
Держи, там есть в том числе и алгоритм гамма-коррекции.
Файлы:
chirikov.zip 1041 kb
Dmitry Fedoseev
42902
Dmitry Fedoseev 2012.04.23 18:38  
Urain:
Держи, там есть в том числе и алгоритм гамма-коррекции.
Мега книга. Спасибо!
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий