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

Любой более или менее серьезный графический редактор (в данном случае мы говорим о растровых редакторах) имеет инструменты для управления яркостью и контрастностью. Как правило таких инструмента три:

  • Яркость/контрастность (Brightness/Contrast) — представляет собой два ползунка, позволяющих грубо регулировать оба названных параметра. Об этом инструменте я (да и не только я) сразу рекомендую забыть, ибо в 99,9% случаев изображение будет загублено.
  • Уровни (Levels) — хороший инструмент, дающий большую тонкость настройки. О нем в этой статье мы говорить не будем.
  • Кривые (Curves) — наиболее гибкий и удобный инструмент управления яркостью и контрастностью. Герой нашей статьи.

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

Как работают кривые?

Все довольно просто: кривые представляют собой координатную плоскость с осями X и Y со значениями в диапазоне от 0 до 255.  X (горизонтальная) отвечает за контрастность изображения, а Y за его яркость.
Думаю, понятно, что 255 — это самая яркая (белая) точка, а 0 — самая тусклая (черная). Так вот, если мы переместим все точки в координату  0, 0 , то изображение превратится в черный квадрат Малевича, и наоборот, если все точки окажутся в координате 255,255 — изображение станет идеально белым. Как-то так, если простым языком. Теперь к практике.

Запускаем Photoshop, Gimp или что там у вас… И открываем какое-нибудь изображение.

1

Так как я использую GIMP, то и примеры приводить буду соответственно в нем-же. Открыть диалог кривых в гимпе можно командой «цвет>кривые».

curves

По умолчанию кривая имеет форму прямой (ага, именно так) линии, которая пересекает точки  0,0 и 255,255. Первая точка 0,0 — самые черные участки изображения, а вторая точка 255,255 — самые белые, поменяв их местами, цвета также поменяются местами, но об этом ниже. Остальные точки в прочих координатах являются полутонами. Для превращения прямой в кривую нужно создать дополнительную точку (она и будет за полутона отвечать). Для этого достаточно кликнуть на нужное место на линии. Но пока этого делать не будем. Для начала рассмотрим линейные примеры изменения яркости и контрастности и попытаемся понять что к чему.

Контрастность.

Простыми словами — это разность между светлыми и темными участками изображения. Чем выше контрастность, тем выше и эта самая разность.
Перемещая любую из точек по оси X мы можем влиять на контрастность.
В первом примере мы переместив нижнюю точку изменили контраст в пользу черного цвета, в следствие чего темные участки изображения проступили более явно. Это связано с тем, что по оси Y точка по прежнему находится в координате 0 (а 0 — это черный, если забыли). Перемещая абсолютно тусклую (черную) точку к значению высокой контрастности (ближе к значению 255) мы как-бы высвобождаем черный цвет и он становится более явным. Таким образом в тенях контраст стал более явным:

Screenshot_2-min

Линейное изменение контрастности

Screenshot_3

Темные участки контрастней

В следующем примере мы поступили с точностью наоборот. Переместив абсолютно яркую (белую) точку (Y=255) в сторону меньшей контрастности (то-есть ближе к нулю) мы высвободили больше белого цвета, благодаря чему светлые участки изображения проступают, затмевая темные участки. Так наиболее освещенные участки стали контрастнее:

Screenshot_4-min

Линейное изменение контрастности

Screenshot_5

Светлые участки контрастней

В последнем примере мы изменили координаты обеих точек. Таким образом значения черного и белого цветов стали более уравновешенными. Мы получили примерно одинаковое значение контрастности как для теней, так и для освещенных участков:

Screenshot_6-min

Линейное изменение контрастности

Screenshot_7

Контрастность относительно уравновешена

Яркость.

Простыми словами — светимость изображения. Чем больше значения белого, тем ярче изображение. При максимально возможной яркости изображение станет абсолютно белым, а при наименьшей яркости изображение будет черным.

Для изменения яркости будем менять координаты по оси Y, то есть по вертикали.
В первом примере мы получили наиболее блеклое изображение, так как мы изменили координаты точки 0,0 на координаты 0,64. То есть значениеY стремится к максимальному значению яркости — 255. Чем выше значение Y, тем белее изображение.

Screenshot_8-min

Линейное повышение яркости

Screenshot_9

Яркость повышена. Появилась белая «пелена»

Во втором случае точка Y стремится к 0, при X=255. То есть яркость стремится к черноте. Соответственно и картинка стала более черной.

Screenshot_10-min

Линейное понижение яркости

Screenshot_11

Яркость ниже. Появилась темная «Пелена»

Если же обе точки по оси Y поместить в одну координату (X при этом не трогая), то изображение примет однородный оттенок серого, яркость которого зависит от координат Y. То-есть если Y обеих точек будет равен 125, то цвет будет самым что ни на есть серым. Если Y будет равен 0, то изображение будет черным, а если 255, то белым.

Screenshot_12-min

Координаты точек по оси Y равны 125. В этом случае изображение стало серым прямоугольником. Скриншот не привожу.

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

Screenshot_14-min

Поменяли точки местами по оси Y
Линейная инверсия

Screenshot_15

Инверсия

Ну вот как-то так. Вроде максимально доступно объяснил. Понимая эти принципы можно приступать к более сложной цветокоррекции.

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

Нелинейное повышение и понижение яркости.

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

Первый пример: Нелинейное осветление

Screenshot_16-min

Нелинейное повышение яркости

Screenshot_17

Яркость выше

Второй пример: Нелинейное затемнение

Screenshot_18-min

Нелинейное понижение яркости

Screenshot_19

Яркость ниже

Нелинейное повышение/снижение контрастности или S-образная кривая.

Отличный способ воздействия на контрастность — это S образные кривые. При их умелом использовании мы никак не влияем на черные и белые цвета, а редактируем лишь полутона. Данный подход позволяет воздействовать на контрастность изображения без потерь отдельных деталей и искажения цветов.

В первом примере мы повысили контрастность «правильной» S образной кривой:

Screenshot_20-min

Правильная S образная кривая

Screenshot_21

Контрастность выше

На втором примере контрастность была снижена при помощи «обратной »  S образной кривой:

Screenshot_22-min

Обратная S образная кривая

Screenshot_23

Контрастность ниже

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