Павел Косенко (pavel_kosenko) wrote,
Павел Косенко
pavel_kosenko

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

To English-speaking visitors: This post in English
http://pavelkosenko.wordpress.com/2012/04/01/how-to-use-curves/


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



О кривых в наше время сказано много, и вместе с тем недостаточно. Большинство статей на эту тему посвящено функционалу инструмента Curves в Adobe Photoshop, в то время, как кривые — куда более глобальное и важное понятие. Несмотря на то, что рассматривать их действие удобнее всего действительно в Фотошопе, надо понимать, что в том или ином виде кривые существуют практически в любой программе для работы с фотографическими изображениями. Даже там, где в прямом виде вы не увидите привычной кривой, скорее всего она существует и так или иначе воздействует на вашу картинку. Даже когда вы меняете параметры Brightness или Contrast в Лайтруме, на самом деле вы управляете формой некоторой кривой. Не говоря о том, что вывод картинки на экран вашего компьютера в принципе невозможен без гамма-приводки и управления яркостно-контрастными характеристиками через ICC-профиль монитора, которые также регулируются некоторой формы кривой. Более того, даже если вы снимаете на плёнку, после проявки ваше изображение также будет определяться так называемой характеристической (передаточной) кривой данной конкретной фотоплёнки.

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

О кривых можно написать большую книгу, и я не удивлюсь, если такие уже есть. В этой статье я ни в коем случае не претендую на оригинальность или тем более всеобъемлемость. Просто мне довольно часто приходится объяснять ученикам работу кривых, а т.к. я человек ленивый, мне проще 1 раз написать. Те же материалы, которые мне доводилось видеть, по той или иной причине меня не устраивают в качестве методических. Большинство из них излишне подробны в части описания фотошопного инструмента Curves, не раскрывая ключевых связей между формой кривых и их воздействием на изображение.

Итак, вернёмся к Фотошопу как частному случаю использования кривых, и рассмотрим их действие с помощью инструмента Curves. Двигаться мы будем от простого к сложному, поэтому для начала возьмём обычное 8-битное черно-белое изображение (в цветовой модели Grayscale).



И применим к нему кривую очень простой формы, с одной лишь единственной точкой, которую поставим в левой части кривой и сдвинем вверх. В Adobe Photoshop кривая вызывается командой «Image - Adjustments - Curves...» или комбинацией клавиш «CMD+M» («CTRL+M» в Windows).


Прежде всего обратите внимание на то, что на кривой серым цветом показана гистограмма нашей ч/б-картинки. Гистограмма отображает распределение яркостей в изображении. Так как мы взяли 8-битную картинку, яркость каждого пиксела может быть представлена максимум 256 значениями (они ещё называются уровнями). В этой системе координат чёрной точке соответствует значение 0 уровней, белой — 255 уровней. Крайняя левая точка гистограммы (а также инструмента Curves в том виде, в котором он приведён на скриншоте) соответствует самым тёмным пикселям нашего изображения (со значением 0 уровней), крайняя правая — самым светлым (со значениями 255 уровней). По вертикали откладывается общее количество пикселей с соответствующей яркостью.

Любая кривая занимается перераспределением яркостной информации изображения. На приведённой выше кривой мы взяли точку с исходным значением 57 уровней (отложенным по горизонтали) и присвоили ей новое значение 101 уровень (отложенное по вертикали). Это означает, что все пиксели, которые на входе инструмента имели яркость 57 (из 255 возможных) уровней, после его применения станут пикселями с яркостью 101 (из 255 возможных) уровней.



Все остальные пиксели изменят свою яркость соответствующим форме кривой образом. В частности, после применения приведённой кривой изменятся яркости всех пикселей, кроме чёрных и белых. Картинка при этом станет светлее, так как все пиксели приобретут новые значения, больше исходных.

Кривая, которая не меняет яркость пикселей и никаким образом не действует на изображение, представляет собой на самом деле прямую, которая идёт из крайней левой точки в крайнюю правую под углом 45 градусов. Именно такую форму имеет кривая по умолчанию, когда мы вызываем её в Фотошопе. Обычно об этом говорят до того, как объясняют действие кривой, но на мой взгляд, проще понять прямую, как частный случай кривой.

Теперь, понимая, как работает кривая, перейдём к конкретике.


Управление яркостью

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



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



Приведённые формы кривых соответствуют измененям параметра Brightness во многих программах, в частности, в Adobe Lightroom (Adobe Camera Raw). Когда вы устанавливаете Brightness в положительные значения, это практически равнозначно тому, что берёте среднюю точку кривой и тянете её вверх. Отрицательные значения Brightness фактически задают смещение центральной точки вниз.


Управление контрастом

Контраст определяется разницей между самой яркой и самой тёмной точками. В данном случае, цифрового 8-битного изображения. Чем больше эта разница, тем выше контраст. Чем меньше разница, тем ниже контраст.

Если мы возьмём, например, все чёрные пиксели фотографии со значениями 0 уровней и присвоим им значения, скажем, 30 уровней (а остальные уровни пересчитаем пропорционально), то мы снизим общий контраст картинки. Это произойдёт за счёт того, что чёрная точка «посереет», то есть станет более светлой. По сути мы пересчитали исходный диапазон 0-255 уровней в новый диапазон 30-255 уровней, уменьшив разницу между самой светлой и тёмной точками.



А можно сделать наоборот — взять все пиксели со значениями 30 уровней и присвоить им (а заодно и всем пикселям со значениями меньше 30) новое значение 0 уровней.



Остальные уровни пересчитаются пропорционально. С помощью такой кривой мы пересчитали диапазон 30-255 уровней (проигнорировав значения меньше 30) в новый диапазон 0-255 уровней. То есть увеличили разницу между самой тёмной и самой светлой точками, а значит увеличили контраст.

ВАЖНОЕ НАБЛЮДЕНИЕ. Повышение контраста связано с увеличением угла наклона кривой относительно исходных 45 градусов, а снижение — с его уменьшением. Иными словами, чем круче кривая, тем выше контраст.

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

А теперь давайте посмотрим на более общую ситуацию, когда наша кривая не является прямой. В этом случае угол наклона будет определяться касательной к кривой в данной точке, а изменение контраста — изменением этого угла в некоторой области.



Там, где угол наклона касательной меньше, чем 45 градусов, контраст уменьшается. Там, где угол наклона касательной больше 45 градусов, контраст увеличивается.

Чтобы понять, каким образом меняется контраст применительно к приведённому примеру, давайте посмотрим на гистограмму, которая сопровождает эти изменения:



Серая гистограмма — исходная, чёрная — та, которая соответствует картинке после применения приведённой выше кривой. Обратите внимание на так называемые «частокол» (в левой части гистограммы) и «расчёску» (в правой её части), которые возникают после применения кривой.

«Частокол» связан с тем, что соседние уровни «схлопываются» в процессе снижения контраста. Так как некоторый диапазон (скажем, 0-100 уровней) мы пересчитываем в новый диапазон (скажем, 30-100 уровней), возникает некоторое количество «лишней» информации (в размере 30 уровней для приведённого предположения), которые программе необходимо куда-то деть. Это проявляется в том, что пикселей некоторых уровней становится в 2 раза больше, что сопровождается визуальными пиками на гистограмме.

«Расчёска» наоборот, связана с тем, что уровни «прорежаются» в процессе повышения контраста. Ведь некоторый диапазон (скажем, 100-200 уровней) мы пересчитываем в новый диапазон (скажем, 50-250 уровней). В процессе этого возникает недостаток информации в виде некоторых уровней с нулевым количеством пикселей, которые ему соответствуют.

Если мысленно сопоставить гистограмму с кривой, которые приведены выше, то можно увидеть, что действительно, в тёмных тонах контраст уменьшается (угол наклона касательной меньше 45 градусов), в средних практически не меняется (угол наклона близок к 45 градусам), а в светлых тонах контраст увеличивается (угол наклона касательной больше 45 градусов).

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



Глаз человека наиболее восприимчив к среднему тональному диапазону и чуть менее восприимчив к тёмному и светлому. Поэтому, если возникает необходимость повысить контраст, делать это разумно в первую очередь в среднем диапазоне. При этом мы можем или совсем пожертвовать тёмным и светлым, или компрессировать их (снизить контраст в этих областях). Что, собственно и делает S-образная кривая.

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

Приведённая форма кривой соответствует положительным значениям параметра Contrast во многих программах, в частности, в Adobe Lightroom (Adobe Camera Raw). Когда вы устанавливаете Contrast в положительные значения, это практически равнозначно тому, что фиксируете среднюю точку кривой, а точки, расположенные на 1/4 и 3/4 диапазона, тянете вниз и вверх на одинаковые значения.

Отрицательные значения Contrast делают тоже самое, но тянут точки, расположенные на 1/4 и 3/4 диапазона, в обратных направлениях.



Как вы теперь видите, инструменты Brightness и Contrast в любых программах весьма ограничены в своих возможностях. Если мы будем производить аналогичные операции с помощью кривых Curves, в зависимости от конкретной картинки мы можем:

а) ставить точки в других местах
б) изменять значения точек несимметрично
в) использовать не 1-3 точки, а больше

По тем же причинам не имеет особого смысла использование инструмента Levels, который является частным и более примитивным случаем Curves.



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

А теперь перейдём к цвету.


Кривые для цветных изображений

До сих пор мы рассматривали кривые относительно ч/б изображения в модели Grayscale. А как быть с цветом? В рамках данной статьи я сознательно ограничусь некоторым базовым рассмотрением кривых в цветовой модели RGB, т.к. модели CMYK и Lab достойны отдельных изысканий, не входящих в задачи этой статьи.

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





И применим к этому RGB-изображению некоторой формы кривую. Не важно какой, пусть это будет S-образная кривая повышения контраста.


Только что мы применили кривую к так называемому композитному RGB-изображению, то есть одинаковой формы кривую ко всем трём его каналам (Red, Green, Blue) одновременно.



Слева гистограмма исходной фотографии, справа — после воздействия кривой. Картинка при этом в целом стала выглядеть действительно более контрастно, хотя её глубокие тени и яркие света контраст потеряли:



Обратите внимание на то, что мы применяли одинаковую кривую ко всем трём каналам, а исходное распределение яркостной информации в каналах у нас при этом разное. В рамках этой статьи я не буду углубляться в проблемы, которые за собой тянет работа с композитной кривой, хотя она достаточно актуальна, особенно по отношению к программам, которые не умеют работать с поканальными кривыми или в пространстве Lab. Здесь лишь упомяну о том, что применение композитной кривой к RGB-изображению может повлечь за собой весьма нежелательные цветовые смещения.

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

Важно понимать, что если мы увеличиваем яркость какого-либо канала, или какой-то определённой яркостной области в этом канале, то мы делаем этот канал (или его область) «сильнее». То есть делаем более значимым вклад этого канала в итоговую цветную картинку RGB.

Например, у нас есть некоторая область со значениями пикселей (128, 128, 128) в координатах RGB. Равенство значений в трёх каналах говорит о том, что это нейтральный цвет. Допустим, после применения повышающей яркость кривой в красном канале, значение R вместо 128 стало 200, то есть общее значение RGB стало (200, 128, 128). Как видите, цвет этой области сместился в сторону красного. Что как раз и демонстрирует усиление красного канала R (повышение его яркости).



А вот ослабление красного канала R (снижение его яркости) повлечёт за собой наоборот, снижение уровня красного в итоговой цветной картинке. То есть появления в ней цвета, который является противоположным красному — зеленовато-цианистому.



То же самое будет происходить и в случае изменения яркости в других каналах. Усиление/ослабление зелёного канала G приводит к появлению зелёного и маджентового оттенка соответственно.



Усиление/ослабление синего канала B приводит к появлению синего и жёлтого оттенка соответственно.



Примечание. В полиграфии, при работе в цветовой модели CMYK, принято использовать терминологию «сильный»/«слабый» каналы в обратных смыслах. «Слабым» там называется самый светлый канал (так как он вносит меньший вклад в итоговое изображение, которое формируется красками на бумаге), а «сильным» — самый тёмный.

Продемонстрируем на конкретных примерах.













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



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

Надеюсь, этот материал оказался вам полезным. С благодарностью принимаю указания на опечатки и неточности.

Если вы хотите освоить работу кривых на практике, и вообще научиться обрабатывать фотографии, приглашаю на короткий практический курс «Основы обработки фотографий» в нашей фотошколе. Курс проходит в компьютерном классе iMac в группах не более 10 человек:

«Основы обработки фотографий»

P.S. Спасибо Саше Онищенко awo_onyshchenko за ценные поправки к статье.

Все самое интересное у нас!



«СРЕДА» – творческая лаборатория и фотошкола в Москве




«Фреймвей» – фототуры и выездные мастер-классы известных фотографов

Tags: исследования, статьи
Subscribe
promo pavel_kosenko january 1, 2010 00:05
Buy for 1 000 tokens
Полный список фототуров и выездных мастер-классов: http://www.frameway.club
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 184 comments
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →
Большое спасибо! В мемориз )
это точно
очень полезный пост
Исправил, спасибо.
Спаасибо
+1
Паш, спасибо - очень хорошо и понятно написано. Жду продолжения :)
Спасибо! Очень логично, последовательно и понятно. Жду новых статей.
согласен - и ценно для "очень-начинающих" любителей вроде меня
Спасибо!
Павел, в очередной раз большое спасибо за последовательное разъяснение по теме.
большое спасибо
когда-то разбирался методом тыка, теперь к тем полученным наблюдениям есть теория :)

А про работу различных автокоррекций в редакторах Вы не писали?
Про автокоррекции не писал, на мой взгляд, это не интересно — автокоррекциями пользоваться не надо.
Большое спасибо, лично мне было очень полезно.

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

PS. "РасчёСКа", без "Т"
Исправил, спасибо.

renewer_tlt

6 years ago

pavel_kosenko

6 years ago

Спасибо! Кнопочку бы перепоста...
Добавил.

dunjaarzt

6 years ago

У вас происходит подмена понятий:"исходным значением 57 уровней (отложенным по горизонтали) и присвоили ей новое значение 101 уровень (отложенное по вертикали)".
Мы поменяли координаты точки только по вертикальной оси, по горизонтальной координаты остались неизменными. Для объяснения лучше оперировать понятиями вход/выход, имхо.
Мы взяли все пиксели со значением 57 уровней и присвоили им новое значение 101 уровень. Одно значение откладывается по горизонтали Curves, другое по вертикали. Не вижу некорректности. Вход/выход, тоже самое. Я же объясняю, а не перевожу подписи в интерфейсе.
спасибо Павел ! очень познавательно !
Все предельно ясно. Напишите уже книгу. :)
Пишу :) Не уверен, правда, что там будет подобный материал.

litle_freak

6 years ago

pavel_kosenko

6 years ago

Я бы дописал про то, что осветление/затемнение приперетаскивании точки вверх/вниз зависит от настроек фотошопа по умолчанию. В РГБ то слева внизу по дефолту тени, а справа вверху света, но вто в других пространствах (емнип в том числе и в грейскейл) инверснуто.
Как раз не хочется углубляться в особенности работы Curves в Фотошопе, так как иначе надо слишком много добавлять всяких именно интерфейсных подробностей. А речь не об интерфейсе, а о инструменте. На мой взгляд, в рамках данной статьи вполне достаточно упоминания «Крайняя левая точка гистограммы (а также инструмента Curves в том виде, в котором он приведён на скриншоте)...»

m1gel

6 years ago

Deleted comment

m1gel

6 years ago

...не входящих задачи этой статьи.

"В" не хватает.
Исправил, спасибо.
начинающим все-таки немного сложновато понять. просто я только недавно стал работать с кривыми, но все равно спасибо, буду разбираться))
Наверное, я - начинающий...

pagerok

6 years ago

проглотил материальчик, оченьно спасибо.

Deleted comment

Deleted comment

Re: !

awo_onyshchenko

6 years ago

Re: !

pavel_kosenko

6 years ago

В закладки)
Хорошая статья.
Спасибо.
Прекрасная статья, спасибо. Маргулис может пока покурить в сторонке.
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →