Завалы горизонта и вертикалей в фотопейзаже. Взгляд математика

Я задумался над этими вопросами, когда обнаружил завал горизонта немногим больше, чем на 2°, в пейзаже маститого автора. Линии горизонта там не было видно. Снимал с рук из лодки, поэтому способа отгоризонтировать аппарат не было, а выравнивать по отражению в воде он, по-видимому, не умел. Для этого надо быть немного математиком :-).

Все рисунки и фотографии, если не указано противное, принадлежат Автору.

Завал горизонта


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

Тут надо заметить, что завал горизонта иногда применяется автором намеренно. В таком случае завал обычно бывает подчеркнуто выраженным. Но не всегда. Например, в этой фотографии был завал примерно в 2°. Я стал исправлять его и вдруг обнаружил, что завал в 1° оказывается выразительнее, чем его полное отсутствие.

Рис. 1. Оставлен завал в 1°
Рис. 1. Оставлен завал в 1°

Что такое 2°? — скажете вы. Такая мелочь!

А не скажите!

В "благоприятной" ситуации завал даже в полградуса обнаруживается невооруженным глазом и портит впечатление.

Где найти горизонтальные линии, чтобы добиваться горизонтальности их изображения?

Кроме линии горизонта (надежнее всего!), горизонтальной является поверхность спокойной воды и все лежащие на ней прямые. Но! Изображаться горизонтально должна только линия, расположенная фронтально. То есть она должна быть перпендикулярна прямой, идущей от фотоаппарата прямо вперед. Иначе прислушайтесь к песенке:

А рельсы-то, как водится,
У горизонта сходятся...

Вполне себе горизонтальные рельсы на изображении поднимаются снизу к линии горизонта. Почему так получается? Потому что мы смотрим/снимаем из точки выше плоскости горизонта (в которой расположены рельсы).

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

Что будет изображено на снимке, мы получим центральным проецированием на плоскость, перпендикулярную оптической оси и расположенную перед объективом. Прямоугольную часть этой плоскости, попадающую в кадр, назовем фреймом изображения и обозначим P. Расстояние до плоскости значения не имеет, можно его выбрать как удобно.

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

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

Рис. 6
Рис. 6

Пример, конечно, нарочито сильный, но это обстоятельство надо иметь в виду, когда урез воды расположен почти фронтально и кажется горизонтальным (ну, почти!):

Рис. 7
Рис. 7

В таком случае следует перебороть соблазн выровнять урез воды.

Отражение солнца или небесного света в ряби на воде может оказаться горизонтальным:

Рис. 8
Рис. 8


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

Вертикальные прямые и их выравнивание


Где их найти?

В городе это не проблема.

Теперь допустим, мы снимаем пейзаж с водоемом. Одно из определяющих свойств зеркальной симметрии состоит в том, что прямая, соединяющая точку с её отражением, перпендикулярна плоскости зеркала. Поэтому при спокойной воде можно найти точку над водой и ее отражение в зеркале воды. Проходящая через них прямая вертикальна. Если не получилось при съёмке, то это свойство можно использовать при исправлении завала:

Рис. 9
Рис. 9


А здесь

Рис. 10
Рис. 10

вертикальная прямая оказалась наклонена примерно на 0.75°. Я проглядел завал? Может быть. Он не бросался в глаза. А с горизонталью слева, которая явно заметнее, все в порядке.

А может быть, все дело в геометрическом искажении рисунка. Об этом ниже.

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

Рассмотрим сосны слева и справа от главной:

Рис. 11.   FF.  F = 24mm
Рис. 11. FF. F = 24mm

То ли они реально так наклонены, то ли это геометрия с нами шутит... Дисторсия была компенсирована еще при обработке RAW.

Завал вертикалей


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

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

Мы снимаем его объективом с F = 24mm (как это имело место на рис. 11). Вертикальный угол обзора для FF сенсора (ориентированного горизонтально) при этом равен
2 arctg(12/24) ≈ 53.13°.

Мы бы хотели получить что-то вроде этого:

Рис. 12
Рис. 12

Но так не будет! Ибо мы хотим, чтобы изображение квадрата заняло всю высоту кадра. А для этого мы направляем оптическую ось вверх на половину угла обзора
arctg(1/2) ≈ 26.565°,
чтобы нижняя сторона квадрата оказалась на нижней границе фрейма изображения. Плоскость фрейма оказывается тоже наклонена на этот угол.

Допустим, что квадрат Q расположен на расстоянии 50 м от аппарата (это не принципиально) и имеет тогда высоту
50 tg(2 arctg(1/2)) = 50 ∙ 4/3 ≈ 66.667 м.

Рис. 13
Рис. 13

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

Направим ось Ox горизонтально вперед, ось Oy горизонтально, перпендикулярно рисунку и "от нас" (справа налево, если смотреть от объектива), ось Oz вертикально вверх.

Плоскость P проведем через точку (5.0, 0, 2.5). Тогда ее уравнение
x
+ 0.50 z = 6.25
Здесь 0.50 = tg(arctg(1/2)).

Координаты произвольной точки плоскости Q запишем в виде (50, y0, z0). Тогда луч, исходящий из точки расположения фотоаппарата и приходящий в эту точку, задается уравнениями
x = 50 t,
y = y0 t,
z = z0 t,
t ≥ 0.

Подставив эти выражения в уравнение P, получим
t = 25 / (200 + 2 z0).
Отсюда найдем значения
x, y и z.

Смотрите, на уровне z0 = 0 величина y, а вместе с ним и ширина изображения, делится против реального размера на 8. А на уровне верхней стороны квадрата z0 = 200/3, и y делится на 8 ∙ (1 + 2/3) ≈ 13.33. Нехилое такое сужение получается наверху квадрата!

Чтобы увидеть получающийся кадр, надо повернуть P до вертикального положения P' (рис. 13) и поместить нижнюю кромку изображения на нулевой уровень.

Координата y при этом не изменяется, а z умножается на √5 / 2 ≈ 1.118. В итоге пара (y, z) становится координатами точки изображения.

Теперь осталось записать все эти рассчётные формулы в PostScript и построить изображение квадрата в кадре:

Рис. 14. Как квадрат отразится в кадре
Рис. 14. Как квадрат отразится в кадре

Конечно, все параметры были выбраны так, чтобы эффект завала вертикалей показать наиболее выразительно.

На рис. 11 стволы сосен по краям как раз изображают вертикали квадрата. И это не дисторсия! Это чистая прямолинейная геометрия.

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

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

И при меньших углах обзора эффект оказывается не столь выраженным. Это или большее эквивалентное фокусное расстояние, или, как на рис. 11, тот факт, что обсуждаемые наклонённые стволы не занимают полностью ширину кадра.


Мы видим, что такой завал вертикалей определяется не свойствами оптики, а самой идеей фотографирования.

Точная формулировка. Вертикаль заваливается, если она не перпендикулярна оптической оси.

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

Впрочем, мы уже привыкли к завалам вертикалей на фотоснимках. Если они не чрезмерны. Поэтому, устраняя их, все-таки IMHO лучше в небольшой степени завал оставить.

Выравнивая горизонт по вертикали, это лучше делать в той части снимка, в которой завал сильнее будет бросаться в глаза: см. рис. 9–10. С завалом остальных вертикалей приходится смириться.

Другой трудноустранимый дефект, связанный с негоризонтальностью оптической оси — неравномерное сжатие изображения по вертикали. На
рис. 12–14 черные точки по вертикали отмечены на равных расстояниях по высоте. Можно было бы предусмотреть процедуру и по пересчёту высот, но
в пейзажах такая особенность обычно не бросается в глаза.


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


А что будет при верхней точке съёмки?
Например, с коптера и направив оптическую ось вниз. Все картинки этого пункта появятся в перевернутом виде, и вертикали будут не сваливаться к середине, а разваливаться в стороны.

А здесь роль вертикалей играют горизонтали:

Я задумался над этими вопросами, когда обнаружил завал горизонта немногим больше, чем на 2°, в пейзаже маститого автора. Линии горизонта там не было видно.-13