Цветокоррекция по числам

В прошлый раз я обещал поговорить о коррекции по числам. Это достаточно простой приём: наводим пипетку на интересующую область, ориентируясь на числа из палитры Info, представляем себе цвет этой области, делаем вывод о его достоверности или недостоверности. Если данная область не может быть окрашена в такой цвет, значит, в изображении есть проблемы и его надо корректировать. Самое сложное в этом процессе — представит цвет.

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

Чаще всего встречающиеся варианты ответа аудитории:
Цвет — это длинна волны;
Цвет — это спектр излучения;
Цвет — это свойство поверхности;
Цвет — это способность объекта отражать определённые лучи.

Правильный ответ: Цвет — это ощущение, возникающее в сознании наблюдателя как отклик на стимуляцию зрительных рецепторов.

А попадающее в глаз излучение — это стимул, который запускает непростую цепочку взаимодействий, приводящую в итоге к возникновению некоего цветового ощущения. Желающие узнать, как происходят эти взаимодействия и какие особенности имеет наш зрительный аппарат, могут почитать книгу Дэвида Хьюбела «Глаз, мозг, зрение».

Для нас же сейчас важно другое. Если цвет — это ощущение наблюдателя, то как его можно измерить, оценить или задать? Ведь мы с вами не можем носить в кармане стандартного наблюдателя и каждый раз показывать ему изображение, чтобы он оценил цвета. Да и в компьютере такой наблюдатель не живёт. Мы можем лишь задать в файле различные значения яркостей красного, зелёного и синего источников света, то есть стимулы, но не цвет.

Связать между собой стимулы (яркости RGB) и цвет (ощущение наблюдателя) позволили опыты, которые провели в двадцатых годах прошлого века Джон Гилд и Дэвид Райт. Краткое описание этих опытов можно найти в статье Андрея Френкеля и Алексея Шадрина «Color Management System (CMS) в логике цветовых координатных систем», а более полное — в книге тех же авторов «Колориметрическая настройка монитора. Теория и практика».

Результатом опытов (а точнее, их наглядной визуализацией) является изображённое выше тело, напоминающее астероид — полный цветовой охват человеческого зрения или, как его иногда называют, цветовое тело человека. Это не монолит, а облако точек. За каждой точкой скрывается цвет — ощущение наблюдателя. Если знать, как устроено это тело и как относительно него сориентированы оси Red, Green и Blue, не составит проблем оценить, какой цвет скрывается за набором значений RGB.

Разберёмся с устройством тела. По вертикали меняется яркость, возрастая снизу вверх. Внизу — чёрный, вверху белый. На центральной вертикальной оси находятся нейтральные (серые цвета). Чем дальше мы отходим в сторону от этой оси, тем выше цветовая насыщенность. Насыщенность — это отклонение цвета от аналогичного ему по яркости нейтрального серого. Или как часто говорят люди: «насколько цвет сочный».

При движении вокруг центральной оси меняется цветовой тон. Упрощенно можно сказать, что цветовой тон — это то место в радуге, которое занимает цвет. Только необходимо добавить пурпурные тона, которые в радуге отсутствуют.

«Крутить» в голове трёхмерную фигуру сложной формы не очень удобно.
Чтобы облегчить задачу, можно использовать упрощённую модель: цветовой цилиндр (изображён справа в виде нескольких горизонтальных сечений). Цветовое тело просто растянуто до более простой формы.

Параметры цвета при этом меняются так же. По вертикали снизу вверх возрастает яркость. На центральной оси лежат нейтральные цвета. При уходе от центральной оси в сторону возрастает цветовая насыщенность. При движении по кругу меняется цветовой тон.

Теперь давайте сориентируем относительно цветового тела и цилиндра оси Red, Green и Blue, чтобы понимать, куда приведёт смещение по каждой из них. Сразу оговорюсь, что такой подход очень условен, не претендует на точность и подходит только для наглядной визуализации. Но для мысленной оценки цвета именно это и нужно.

Представьте себе обычную прямоугольную декартову систему координат. Давайте отложим на каждой оси единичный отрезок, обозначающий изменение яркости в соответствующем канале от нуля до максимума. Таким образом, все возможные комбинации яркостей Red, Green и Blue будут лежать внутри кубика, изображённого на иллюстрации слева.

Угол, находящийся на пересечении осей, будет соответствовать чёрному цвету (яркости во всех каналах нулевые), а противоположный ему — белому (яркости во всех каналах максимальные). Теперь развернём кубик и поставим его на «чёрный» угол.

Готово: по вертикали меняется яркость, на центральной оси лежит нейтраль, а оси Red, Green, Blue расходятся тремя лучами вверх и в стороны из чёрной точки. Можно начинать сдвигаться по ним в соответствии с данными из палитры Info и оценивать цвет.

Яркость меняется по вертикали, и её просто оценить, прикинув сдвиг по вертикальной оси. Каналы вносят различный вклад в общую яркость изображения, но для примерной оценки можно считать его примерно одинаковым. Сумма поканальных яркостей для чёрной точки будет равна нулю, а для белой 765 (три раза по 255). Поскольку все эти прикидки очень приблизительные, можно смело округлить 765 до 750. Чтобы оценить яркость интересующего цвета, достаточно сложить числа из всех каналов и прикинуть, какая часть от 750 получилась.

Предположим, в палитре Info имеются значения: R(200) G(100) B(50). Сумма всех яркостей равна 350, что чуть меньше половины от 750. Таким образом, интересующий нас цвет имеет яркость чуть ниже средней.

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

Оси Red, Green, Blue проецируются на него в виде трёх лучей, расходящихся из центра. По традиции красная ось направлена вверх, зелёная вправо-вниз, а синяя влево-вниз. Все отсчёты начинаются из центра, а максимальный сдвиг по каждой оси составляет 255. Для простоты также округлим это значение до 250.

Давайте продолжим оценку нашего цвета R(200) G(100) B(50). Удобнее всего начинать с самого светлого канала: он сильнее всего уводит нас от центра круга и позволяет сразу оценить, какой цветовой тон может получиться. Сдвигаемся по красной оси примерно на четыре пятых (200/250) от максимума.

Далее берём средний по яркости канал, в нашем случае — зелёный. Из точки, в которой мы находимся, необходимо сдвинуться в направлении зелёной оси примерно на две пятых (100/250) от максимума. Оказываемся в области оранжевых тонов.

Последним рассматриваем самый тёмный канал, у нас это синий. Сдвигаемся в направлении синей оси примерно на одну пятую (50/250) от максимума. Теперь можно на словах описать искомый цвет: это достаточно насыщенный красновато-оранжевый цвет яркостью чуть ниже средней.

Если замер делался по фотографии тыквы или дыни, я легко поверю в адекватность такого цвета; помидора — прежде чем давать оценку, внимательно присмотрюсь к его сорту и степени зрелости; огурца — начну бить тревогу. Конечно, если это не семенной огурец.

Условием нейтральности (серости) цвета в модели RGB является равенство яркостей во всех каналах. На круге это выглядит как равносторонний треугольник: пройдя вдоль каждой из осей одинаковое расстояние мы вновь окажемся в центре круга. Это очень важное для практической работы условие, поскольку большинство приёмов установки хроматического баланса состоит в приведении к нейтрали на изображении объектов, бывших нейтральными в жизни.



Для дальнейших упражнений мы воспользуемся приведенной выше моделью. По цветовому кругу будем оценивать хроматическую составляющую, а по правой шкале яркость, как сумму трёх каналов. Как и в устном счёте, в коррекции по числам существуют приёмы оптимизации, позволяющие быстрее и проще произвести оценку цвета. Мы пойдём от простого к более сложному и на пяти примерах посмотрим, как упростить и ускорить размышления.


Пример первый. Самый простой, ненулевая яркость есть только в одном канале: R(160) G(0) B(0).


Оцениваем яркость. 160 составляет примерно одну пятую часть от 750. Учитывая, что цвет достаточно чистый, можно мысленно ещё немного прибавить яркости до одной четверти. Таким образом, этот цвет лежит примерно в три четверть тонах. Слишком тёмный, чтобы быть сильно насыщенным, но ещё достаточно светлый, чтобы не попасть в глухие и очень тёмные цвета.

Оцениваем хроматику. Сдвигаемся по красной оси примерно на три пятых (160/250).

Цветовой тон: чистый красный.
Насыщенность: средняя. Учитывая яркость можно сказать, что это уже не ярко-алый, но ещё и не коричневый.

Итог: средне насыщенный достаточно тёмный красный.

Если бы в такой цвет на фотографии были окрашены некоторые участки кирпичной стены, красного перца или клубники, я мог бы поверить в достоверность этой фотографии.

Пример второй. Появляется ненулевая яркость во втором канале: R(220) G(90) B(0).

Оцениваем яркость. 310 (220+90) составляет немного меньше половины от 750. Цвет достаточно чистый, поэтому мысленно прибавим яркости до средней.

Оцениваем хроматику. Сдвигаемся по красной оси почти до конца. Сдвиг по зелёной оси будет проходить практически по касательной, как бы поворачивая по часовой стрелке направление в котором будет лежать цвет. Если бы в зелёном канале яркость была нулевой, мы остались бы на красной оси. Если бы она равнялась яркости красного канала, мы попали бы на жёлтую ось.

Насколько произойдёт поворот от красной оси к жёлтой, определяется соотношением яркостей зелёного и красного каналов. 90 — это больше трети, но меньше половины от 220. Таким образом, поворачиваемся от красной оси к желтой примерно на две пятых.

Цветовой тон: слегка красноватый оранжевый.
Насыщенность: высокая.

Итог: насыщенный оранжевый цвет средней яркости.

В такой цвет может быть окрашен апельсин, мандарин, и даже морковка. Хотя есть такую морковку я бы всё-таки поостерёгся.

Пример третий. Ненулевая яркость во всех трёх каналах, и все эти яркости отличаются: R(220) G(170) B(140).

Оцениваем яркость. 530 (220+170+140) составляет почти три четверти от 750. Это достаточно высокая яркость. Цвет такой яркости ещё не будет близок к белому, но уже не сможет быть сильно насыщенным.

Оцениваем хроматику. При движении по кругу нас интересуют не абсолютные значения яркости в каналах, а их соотношения. А коли так, мы можем взять яркость самого тёмного канала (в данном случае это синий) и вычесть её из всех каналов одновременно. Ведь сдвиг по всем каналам на 140 приведет нас обратно в центр, поэтому нет смысла заниматься лишней беготнёй.

После вычитания 140 получаем новую раскладку R(80) G(30) B(0). Сдвигаемся по красной оси примерно на треть. Яркость в зелёном канале составляет примерно две пятых от яркости красного, поэтому поворачиваемся в сторону жёлтой оси примерно на две пятых. Оказываемся в тех же цветовых тонах, что и в прошлом примере.

Цветовой тон: слегка красноватый оранжевый.
Насыщенность: низкая.

Итог: слабо насыщенный оранжевый цвет достаточно большой яркости.

Перед нами цвет кожи среднестатистического европеоида. С точки зрения цвета человек отличается от апельсина только большей яркостью и меньшей насыщенностью.

Пример четвертый. Яркости в двух каналах близки друг к другу, а в третьем заметно меньше: R(50) G(200) B(200).

Оцениваем яркость. 450 (50+200+200) составляет примерно три пятых 750. Этот цвет уже заметно светлее среднего, но ещё не выходит из зоны средних тонов, поэтому может иметь достаточно высокую насыщенность.

Оцениваем хроматику. Можно было бы, как в предыдущем примере, вычесть из всех каналов по 50 и после этого бегать по двум осям, но мы поступим проще. До цвета R(200) G(200) B(200) имеющемуся не хватает 150 в красном канале. Сдвигаемся по красной оси на три пятых, только в обратную сторону.

Цветовой тон: циановый.
Насыщенность: средняя.

Итог: средне насыщенный достаточно светлый циановый.

Примерно так выглядит раствор медного купороса. А если вернуться к более распространённым в практической работе случаям, то приведя к такому цвету воду в бассейне, вы скорее всего встретите одобрение и радость со стороны заказчика.

Пример пятый. Наверное, наиболее часто встречающийся в работе. Яркости во всех каналах незначительно отличаются: R(150) G(140) B(130).

В этом случае даже нет необходимости отдельно оценивать разные характеристики цвета. Достаточно взять средний по яркости канал и представить себе нейтральный серый с такой яркостью во всех каналах: R(140) G(140) B(140). В нашем цвете на 10 больше красного и на 10 меньше синего (больше жёлтого).

Итог: серый цвет яркостью чуть выше средней с явным тёплым оттенком.

Такого цвета может иметь мех волка или крысы, асфальт.

P.S.

И напоследок небольшое домашнее задание. Перед вами фото с десятью отметками и десять палитр Info. Попробуйте определить, какая палитра какой точке соответствует.

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

  • Mike

    название статьи не соответствует содержанию. про то, как по цифрам определять в уме цвет в RGB – есть, а вот про цветокоррекцию-то ничего и нет… как подправлять имеющийся цвет по каналам ближе к нужному? Примеры практического применения знаний надо: например к какому цвету по цифрам нужно стремиться (хоть примерно) освещенного участка кожи лица на портрете в самых простых случаях: лицо на солнце, в студии со вспышкой и т.д.

    • > как подправлять имеющийся цвет по каналам ближе к нужному?
      Выгнуть кривые в каналах так, чтобы цвета пришли к желаемым.

      > Примеры практического применения знаний надо
      В соседнем комментарии написано, что даже этого количества букав не осилили. Не все сразу, будет и примеры.

      > к какому цвету по цифрам нужно стремиться (хоть примерно) освещенного участка кожи лица на портрете в самых простых случаях: лицо на солнце, в студии со вспышкой и т.д.

      Люди разные, лица разные, солнечный свет разный и т.д. Бесполезно давать точные цифры. Тем более в RGB, где еще и рабочие пространства разные.

  • Роман

    Наконец то я понял, как быть с этим цветовым кругом ))) Спасибо

  • Бывает

  • Спёр у тебя 2 картинки.

    • Саша, вот после таких заявлений и начинают настороженно относиться к украинцам. 🙂
      Ты скажи, какие тебе нужны, я скину в высоком разрешении. Заметь, добровольно, без всяких «спер» 😉

  • Роман

    Андрей, а вот вопрос о практическом применении ЦК по числам. я не беру в расчет полиграфию. а вот для “простофото”. на одном из фотофорумов была полемика, что мол если кожа белого человека, то она должна быть точно равна таким то значениям в каналах RGB или что в CMYK значение С должно быть в 3-5 раз меньше чем M и Y а Yellow должно быть на 2-3% больше мадженты. иногда снимаешь человека, смотришь на мониторе (монитор откалиброван), тыкнешь пипеткой- бац, не подходит под вышеуказанные каноны. но человек то сам на себя похож. и вот мне лично непонятно, нужно ли в данном случае изгаляться с ЦК или нет. я, естественно, понимаю, что нет одинаковых людей и оттенки кожи у всех разные, но все же , если мыслить глобально. как быть? Можно ли есть морковку, если на экране она выглядит вкусно, а по палитре инфо = R(220) G(90) B(0).

    • Ни один вменяемый специалист никогда не скажет, что цвет какого-то объекта должен быть строго равен тому-то. Как минимум, потому что даже однотонно окрашенный объект будет на разных участках изображения иметь разный цвет.

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

      Вот здесь, кстати, кратки рассказ о том что будет, если визуальной проверку не произвести: http://zhur74.livejournal.com/40125.html

    • Hodor Westerowski

      тему скинтонов хорошо расписал Дэн Маргулис в книге “Фотошоп для профессионалов”. То, что вы написали, верно для многих европейцев, но конечно существую девиации. При коррекции по числам скин тонов необходимо правильно делать замеры пипеткой (часто лицо девушки для этого не подходит, ибо макияж). Плюс всегда надо учитывать общий цветовой сдвиг (картинка может слегка желтить/краснить и т.д.). В общем, прочитайте Маргулиса и наступит ясность 🙂
      Приведенный цвет морковки может говорить о клиппинге в синем. Тут надо видеть всю картинку, а не замеры с одной точки.

  • Inna

    Можно калибровать монитор по картинке?) Конечно попадания не будет в цвет,но по точке конечно можно предположить-где что у автора.Ну это статья для понимания цвета в числах.Есть еще в буквах.Вот только в чем практическое применение сего?

  • На здоровье!
    А по поводу остального: сбросьте мне письмо на zhur74@livejournal.com , обсудим.

  • Спасибо за статью.
    Сейчас попробовал новыми знаниями подправить баланс белого в Gimp.
    Взял фото с церковью, по побелке на здании взял пробу RGB(113,119,128).

    Для коррекции сделал новый слой в режиме “перекрытие”.
    Для правки взял цифры +15,+9,0 (сколько не хватает в каналах до серого) и залил цветом (134,128,119), чтобы и коррекция была и в сумме средняя светимость 382=255*3/2. Результат – недостаточная коррекция (120,123,127) не хватило (+7,+4,0), т.е. скорректировал, но наполовину. Теоретически пока непонятно, почему результат в два раза меньше ожидаемого.

    Взял коррекцию в два раза больше, +30,+18,0 и выставил цвет (141, 129, 111). Результат почти идеальный, в той же точке здания, цвет стал (124,124,123). Получилась бОльшая сумма каналов 371=124+124+123 против 360=113+119+128. Пока не могу понять, почему сумма стала больше, хотя на глаз светимость осталась такой же, баланс белого выровнялся и из холодных цветов стал более теплый и приятный.

    • Добрый день, Игорь.

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

      Чтобы не уезжала яркость, я в свое время на слой с поканальным разбалансом накладывал средне-серую заливку в режиме Luminosity. Фотошоп этот режим наложения обсчитывает криво, но при небольших отклонениях от серого (что у меня и было) и погрешности не очень большие.

      Посмотрите экшен из этой статьи: http://fototips.ru/obrabotka/avtomatizaciya-ustanovki-cvetovogo-balansa/

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

  • Vitaliy Rice

    Несмотря на кажущуюся сухость материала, урок оказался интересным, особенно домашнее задание (перепутал только 7й и 2й цвет местами, да и время уже было под полночь). А как вы поставили столько пипеток? У меня максимум 4. Практически, до этого урока я не относился к каждому цвету отдельно так внимательно, всегда смотрел на них в общей картине. Спасибо!

    • Нарисовал руками курсоры пипетки и расставил на нужных участках.

      • Vitaliy Rice

        И весь секрет. Думаю, в Адобе могли бы и все десять поддержать. 🙂

  • Илья Кульпин

    Подскажите где можно скачать цветовой круг в высоком разрешении?

  • Hodor Westerowski

    по мне, так в LABе проще оценить цвет. И СМУК удобней для этих целей. Способ, какой предлагает автор, имеет место быть, но зачем так мучить свои мозги, есть есть вещи проще (LAB/CMYK)?