Как исправить фишай

Фишайная собака

Фишайная собака

Между четвертым и пятым выпуском «Панорамной Азбуки» я решил написать небольшую, но очень полезную статью. Кто из вас снимал на фишай, знают, что этот объектив весьма специфически искажает изображение, «вдавливая» углы к центру.
[widget id=»text-32″]

Часто эта дисторсия смотрится интересно и привносит в кадр художественный эффект, но иногда вам может захотеться сделать из «фишайной» фотографии «линейную«, то есть классическую. Без вдавленных углов и с ровными вертикалями.

Исправленная фишайная дисторсия

Исправленная фишайная дисторсия (нажмите чтобы увеличить)

Такое желание может возникнуть после съёмки городского ландшафта и интерьера, но есть и еще одна причина: при коррекции фишайной фотографии можно добиться экстремально широкого угла обзора, который не в состоянии обеспечить ни один широкоугольный объектив. И в таких фотографиях с «растянутыми» краями часто есть свой шарм.

Грозовые облака над Пятигорском

Грозовые облака над Пятигорском — исправленная дисторсия

Итак, у вас есть фотография, сделанная рыбьим глазом, и вы хотите во что бы то ни стало исправить её, устранив «пузатость».

Вам понадобится сам исходный снимок и программа PTGUI. Больше ничего.

Какие требования предъявляются к исходной фотографии? Самое главное — она не должна быть кадрирована! Для успешной коррекции дисторсии вы не должны применять кадрирование и какие-либо коррекции перспективы, иначе результат может получиться непредсказуемым.

Содержание

  • 1 Приступаем к коррекции фотографии
  • 2 Как сохранить настройки коррекции?
  • 3 Есть способ рассчитать параметры коррекции более точно
  • 4 На что следует обратить внимание
  • 5 Таблица для полноформатных камер (FX), кроп-фактор 1,0
  • 6 Таблица для кропнутых камер Nikon (кроп-фактор 1,53)
  • 7 Таблица для кропнутых камер Canon (кроп-фактор 1.6)
  • 8 Исправляем дисторсию объектива Gopro Hero II

Приступаем к коррекции фотографии

Прежде всего, запустите PTGUI и откройте в нем ваш снимок.

Для примера я взял снимок Данилы Михина (http://vk.com/lites), который, на мой взгляд, отлично подходит для стартового примера. Фотография сделана на Canon 5d mark II и объектив Canon 8-15 f4 fisheye. Фокусное расстояние — 15мм. Мы видим  ярко выраженную фишайную дисторсию.

Снимок Canon 5d mark II - 15 мм фишай

Нам предстоит исправить её, добившись прямых и вертикальных линий домов.

Давайте посмотрим на окно PTGUI, которое появляется при открытии фотографии:

Откройте снимок в ptgui

На что следует обратить внимание в первую очередь?

  • В графе Lens type (тип объектива) указано Rectilinear (normal lens), т.е. по мнению программы исходный кадр является линейным и сделан на обычный широкоугольный объектив. Мы знаем, что это неправда. Fisheye не является линейным объективом!
  • В графе Focal lingth (фокусное расстояние) указано 15mm, это правда.
  • В графе Focal length multiplier (кроп-фактор) указано , для Canon 5d mark II это также верно.

Теперь необходимо исправить пункт, в котором PTGUI допустил ошибку. Прежде всего, снимите галочку на пункте Automatic (use EXIF data from camera, if available) и выберите Circular fisheye.

Циркулярный фишай

В этот момент PTGUI, сообразуясь со своей логикой, подставит в поле Hor. Field of View (горизонтальный угол обзора) какое-то своё значение, в моём случае примерно 100 градусов. Пока что не обращайте на него внимания.

Откройте Panorama editor (Редактор панорамы) — иконка в виде трех синих квадратов в верхней части окна PTGUI, — и посмотрите, что у вас получается.

Редактор панорам

Редактор панорам

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

Исправление дисторсии PTGUI

Очень важно: как изображение искажено в редакторе панорамы, таким вы его и получите в итоге! Поэтому любое ненужное искажение снимка вас должно насторожить. К примеру, снимок может выглядеть вот так:

Исправление дисторсии PTGUI

Но всё это вас не должно удовлетворять, ведь мы стремимся к фотографии с идеальной дисторсией.

Вернитесь в главное окно программы и посмотрите на пункт Hor. Field of View. Вы можете скорректировать дисторсию снимка, просто подбирая значение этого поля. Обычно я открываю на одном экране два окна — главное окно PTGUI и окно редактора, — и подбираю значение угла обзора опытным путем (нажмите чтобы увеличить).

Не пугайтесь! Подобрав его один раз для своей камеры и объектива, вы будете просто вводить его в поле сразу после открытия файла, не тратя лишнего времени. Опытным путём я установил, что для связки  Canon 5d mark II + Canon 8-15 f4 fisheye при фокусном расстоянии 15 мм оптимальное значение горизонтального угла обзора равно 141 градусу.

Подбор значения горизонтального поля

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

Ползунки для коррекции полей

Ползунки для коррекции полей

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

Различные проекции

Различные проекции

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

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

Выравнивание вертикалей

Создание вертикальных линий

Следуя той инструкции, установите 2-3 вертикальных направляющих, желательно в левой, средней и правой части кадра. Вертикальные грани зданий идеально подходят для установки направляющих. Далее проведите оптимизацию, как описано в той статье, и вот что у вас должно получиться:

Идеальные вертикальные линии

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

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

Если у вас возникают какие-то проблемы, то откройте вкладку Lens parameters и внимательно посмотрите, что там написано. Случается, что какие-то параметры приходится исправлять прямо там.

Lens Settings PTGUI

Настройки объектива в PTGUI

Focal Length — фокусное расстояние вашего объектива. Редко в точности совпадает с тем, что вы видите на самом объективе, но приблизительно должно совпадать. Если отклонение от теоретического значения превышает 0.05, то стоит проверить, не закралась ли ошибка в других параметрах. Например, в Focal length multiplier или Horizontal Field of View.

Focal length multiplier — множитель кропнутости вашей матрицы. Если у вас полноформатная камера, например, Nikon d700 или Canon 5d, то множитель всегда, при любых обстоятельствах равен 1. Если у вас «кропнутый» Canon, то величина равна 1.6, а если кропнутый Nikon, то 1.53. В случае кропнутых камер значение может быть не строго равным 1.6 или 1.53, но сильно отклоняться не должно.

Horizontal Field of View — с этим параметром мы с вами уже сталкивались ранее, он отвечает за ширину угла обзора и находится в прямой зависимости от двух предыдущих.

Как сохранить настройки коррекции?

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

PTGUI база данных объективов

PTGUI база данных объективов

Просто введите название вашей связки объектив+камера и нажмите кнопку Save to database. Чтобы загрузить настройки из базы данных, выберите нужный пункт в списке и нажмите кнопку Load from database.

Есть способ рассчитать параметры коррекции более точно

Действительно, не обязательно подбирать все эти параметры вручную. Если вы соберёте в PTGUI сферическую панораму, снятую по всем правилам с использованием панорамной головки, то все нужные вам параметры будут стоять на своих местах в графах, и вам останется сохранить их в базу данных. В будущем для коррекции дисторсии вы просто выберете нужную комбинацию камера-объектив из списка и нажмёте Load from database. Дисторсия будет скорректирована автоматически. Но будьте осторожны, всегда проверяйте результат в редакторе панорамы (Panorama Editor), проверяйте общий внешний вид, корректируйте поля при необходимости.

В принципе, всё! Остаётся экспортировать изображение. Как это делается — читайте в предыдущем выпуске Азбуки последний пункт — Экспорт готовой панорамы в PTGUI.

Обращу ваше внимание только на один пункт — размер итоговой панорамы.

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

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

Чтобы получить максимально возможное разрешение, нажмите кнопку Set optimum size… и выберите пункт Maximum size (no loss of details), и вы заметите, что предложенные программой размеры итогового снимка превышают размеры исходника. Но обольщаться не спешите: размер фотографии увеличивается за счёт «вытянутых углов», и по краям снимка наблюдается существенное падение качества картинки. Сравните два снимка. На верхнем приведена центральная часть кадра после обработки в PTGUI, а на нижнем снимке — угол. Падение детализации хорошо заметно.

Сравнение разрешений

Вверху — центр кадра, внизу — угол

На что следует обратить внимание

  • Цилиндрическая и сферическая проекции могут обеспечить вам идеально ровный горизонт только из снимков, в которых он изначально был ровно посреди кадра. Иначе ваш горизонт при исправлении искажений окажется прогнут либо вниз, либо вверх.
  • Близко расположенные объекты по краям кадра при коррекции становятся еще ближе и размазываются по кадру, это смотрится не лучшим образом. К примеру, вот снимок Натальи Воскресенской, «исправленный» в PTGUI. Не к любому фишайному снимку уместно применение коррекции.
    kisa
  • В то же время, если ближайший объект расположен по центру кадра, то результаты могут получиться забавные. Ниже фото Александра Петухова (с человеком) и Натальи Воскресенской (с осликом).
    vitos osel
  • Идеально вытянуть вертикали без больших потерь разрешения можно только если снимать строго горизонтально. Если камера отклонена от горизонта, то вертикали нормально выправляются, но разрешение в вытягиваемых областях изображения сильно снижается. В качестве примера привожу фотографию Александра Петухова:
    dom
    При 100% увеличении видно, что качество картинки в верхней части кадра сильно упало. Полноразмеры не выкладываю, так что поверьте мне на слово.

В любом случае, описанный мной приём добавляет в копилку фотографа ещё одну творческую возможность.
[widget id=»text-32″]
Готовя к публикации статью о коррекции бочкообразной дисторсии фишая, я попросил у своих друзей снимки, сделанные различными фотоаппаратами и разными объективами, с целью просчитать оптимальные параметры Horizontal Field of View, или горизонтального угла обзора. Цель — создать удобные таблицы, по которым каждый из вас сможет быстро найти нужное значение, вписать его в соответствующее поле главного окна PTGUI и получить идеально линейный снимок. Ниже привожу таблицы.

Таблица для полноформатных камер (FX), кроп-фактор 1,0

Кроп-фактор Объектив Фокусное расстояние
Focal length
Горизонтальный угол обзора
Hor. Field of View
FX (1,0) CANON EF 8-15 mm f/4.0L Fisheye USM 15 142,2
FX (1,0) CANON EF 8-15 mm f/4.0L Fisheye USM 8 176-180*
FX (1,0) Nikon 16mm f/2.8 Fisheye-NIKKOR AF-D 16 147
FX (1,0) SIGMA AF 10 mm F/2.8 EX DC HSM со срезанной блендой 10 176-183*

*угол обзора зависит от того, как обрезан кадр в PTGUI во вкладке Crop. Меньшее значение — для обрезания «по умолчанию», а большее — для обрезания «на пределе», когда круг обрезки вплотную подходит к чёрной границе (см. фото).

Различные варианты обрезки Sigma 10

Различные варианты обрезки кадра Sigma 10mm fisheye

Таблица для кропнутых камер Nikon (кроп-фактор 1,53)

Кроп-фактор Объектив Фокусное расстояние
Focal length
Горизонтальный угол обзора
Hor. Field of View
1,53 Tokina AT-X 107 AF DX Fish-Eye 10-17mm F/3.5-4.5 10 170
1,53 SIGMA AF 10 mm F/2.8 EX DC HSM 10 174,5

Таблица для кропнутых камер Canon (кроп-фактор 1.6)

Кроп-фактор Объектив Фокусное расстояние
Focal length
Горизонтальный угол обзора
Hor. Field of View
1,6 Пеленг 8 мм 8 165
1,6 Samyang 8mm f/3.5 AS IF MC Fisheye 8 141
1,6 CANON EF 8-15 mm f/4.0L Fisheye USM 8 178
1,6 CANON EF 8-15 mm f/4.0L Fisheye USM 15 81
1,6 SIGMA AF 8 mm f/3.5 EX DG FISHEYE 10 174

Если вашей связки камера-объектив нет в таблицах, пришлите мне 2-3 полноразмерных снимка в формате JPEG с архитектурой (именно архитектурой. Чем больше зданий, тем лучше. Если у вас есть клетчатый потолок с одинаковыми квадратными клетками, можете сфотографировать его — тоже пойдёт) на почту, которая указана в контактах. Можете также оставить ссылку на файлы в комментариях. Только очень прошу, не нужно размещать файлы на хостингах с навязчивой рекламой, вирусами и т.д. При отправке файлов обязательно указывайте точную модель камеры и объектива. Я скачаю файлы, просчитаю ваши значения и добавлю в таблицу.

Но это не всё! Я вспомнил, что у камеры Gopro тоже объектив типа «рыбий глаз», и у него тоже бочкообразная дисторсия. А это означает что его можно точно так же исправить.

Исправляем дисторсию объектива Gopro Hero II

Сделав несколько снимков на камеру Gopro Hero II, я просчитал для неё параметры коррекции. На всякий случай даю не только горизонтальный угол обзора, но и другие параметры из вкладки Lens Settings. Поскольку у камеры есть 2 режима съёмки — обычный (medium) и широкоугольный (wide), то и параметры привожу в двух вариантах. Focal length multiplier (кроп-фактор) от ширины угла не зависит, так что он остается неизменным. Для Hero III, скорее всего, параметры коррекции будут точно такие же. У меня пока что не было возможности это проверить.

  • Hor. Field of View для максимально широкого угла (Wide): 128
  • Hor. Field of View для среднего угла (Medium): 102
  • Focal length (Wide): 2,6447521
  • Focal length (Medium): 2,14862
  • Focal length multiplier: 7,6

А вот что у меня получилось:

Коррекция фишайного искажения Gopro

Коррекция фишайного искажения Gopro (нажмите чтобы увеличить)

На этом всё. Благодарю за внимание!
[widget id=»text-32″]

June 29 2011, 11:05

Categories:

  • Техника
  • Фотография
  • Cancel

Корректировка снимков после использования фишая.

А проведу-ка я маленький курс по поводу того как выпрямить геометрию после использования фишай объектива. В моем случае это был Samyang 8mm на кроп-камере Canon 60D. Сначала приведу пример, а потом расскажу как это делать и почему не всегда стоит убирать бочкообразность фотографий…

Samyang 8mm, корректировка

Ну как? Заметили разницу? Итак что же нужно помнить до того как вы нажали кнопку спуска затвора…. Вам нужно помнить и знать будете ли вы выравнивать фото и что именно хотели бы уместить в кадре. Как видите при выравнивании снимка мы теряем часть кадра, но лифт, двери и перила становятся ровными, хотя как видите всё таки с некоторыми искажениями (верхняя дверь растянута). Хочу заметить что чем ближе объект в кадре тем больше он будет растянут по углам (с частичным его исчезновением из кадра), поэтому корректировку снимков в большей степени необходимо производить для удаленных архитектурных объектов, чтобы передать их правильные формы.

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

Для корректировки я использовал программное обеспечение Adobe Lightroom 3.4. Загрузив фотографии через импорт мы переходим в режим редактирования Develop, где после выбора необходимой фотографии мы переходим в правую панель и ищем раздел Lens Correction, в котором предоставляется возможность откорректировать фотографию в ручном режиме и в режиме заготовленных профайлов. Мы конечно же не будем тратить время и выбираем готовый профайл. Выбираем для начала марку объектива. Я выбирал Nikon, а дальше выбирал модель объектива AF DX Fisheye-NIKKOR 10.5mm f/2.8G ED. Всё! Корректировка готова. В зависимости от кроп фактора камеры и использования того или иного фишая вам необходимо будет побаловаться другими профилями.

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

 fish eye correcting lens

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

correcting lens fish eye 

 Вот такой из меня учитель )))

Алгоритм коррекции геометрических искажений, вносимых объективом «рыбий глаз» в изображения и видео

Время на прочтение
4 мин

Количество просмотров 5.7K

Введение

К настоящему времени фото и видеокамеры с объективами «рыбий глаз» получили очень широкое распространение. Это обусловлено тем, что такое монокоробочное решение в отличие от применения нескольких стационарных или меньшего числа поворотных камер позволяет охватывать область зрения в половину от полного телесного угла (угол обзора 180° по горизонтали и вертикали), а иногда даже и более. В то же время из-за существенных вносимых таким объективом в получаемые изображения или видеокадры геометрических искажений для удобства восприятия получаемой полезной информации приходится использовать цифровую обработку исходных данных, компенсирующую такие искажения. В частности, ставшим уже классическим подходом к решению указанной проблемы является модель Brown–Conrady. Однако до сих пор предлагаются все новые и новые способы решения этой проблемы. И связано это со следующими обстоятельствами. Дело в том, что полная коррекция геометрических искажений сопряжена с соответствующим проецированием изображения со сферической или сфероподобной поверхности на плоскость. А это, в свою очередь, при сохранении пространственного разрешения в центральной области изображения ведет к резкому увеличению размеров «выпрямленного» изображения. Так что приходится это выпрямленное изображение подрезать по периметру и, соответственно, частично терять то даваемое объективом «рыбий глаз» преимущество по полю зрения. И поскольку принципиально невозможно одновременное удовлетворение трех противоречащих друг другу требований (неуменьшение пространственного разрешения изображения, неувеличение размера изображения в пикселях и полная компенсация геометрических искажений), то разработка все более и более сбалансированных моделей является весьма актуальной темой и будет оставаться таковой и в будущем.

Теория и полученные результаты

Рассмотрим одну из таких наиболее часто используемых на практике оптических схем объектива «рыбий глаз», как эквидистантная схема, которая при качественных оптических компонентах имеет лишь радиальную составляющую бочкообразной дисторсии. Её коррекцию в более общей форме по сравнению с классическим представлением в виде степенного ряда по r можно осуществить с помощью равенства

begin{equation} boldsymbol{mathrm{r}}_s = boldsymbol{mathrm{r}}_p f(r_p). (1)  end{equation}

Это равенство однозначно ставит в соответствие значение яркости пикселя для выровненного монохромного изображения (или три значения яркости для выровненного цветного изображения), характеризуемого (характеризуемых) отсчитываемым от центра изображения радиус-вектором rp = (xp, yp), со значением яркости пикселя (значениями яркости пикселей) для исходного изображения, которое характеризуется (которые характеризуются) отсчитываемым от центра изображения радиус-вектором rs = (xs, ys). То есть, равенство (1) с помощью функции f задает правило пересчета принадлежащих плоскости пикселей с координатами rp через принадлежащие полусфере пиксели с соответствующими координатами rs.

Для рассматриваемой оптической схемы можно получить строгое аналитическое выражение для функции f. Оно имеет следующий вид:

begin{equation} f(r) = frac {2R_0} {pi r} arctan left( frac {pi r} {2R_0} right). (2) end{equation}

Здесь R0 = 2r0, r0 (R0) – это радиус (в пикселях), отвечающий углу pi / 4 (pi / 2) радиан на исходном изображении относительно оси симметрии объектива. Этот параметр уникален для каждой конкретной оптической системы. Равенство (2), очевидно, может быть разложено в ряд Тейлора с оставлением нескольких членов ряда и перенормировкой коэффициентов перед ними для представления функции f в стандартном по модели Brown–Conrady виде. Однако далее будет рассматриваться именно точное выражение для функции f.

Рисунок 1 – Функция преобразования координат из rp в rs согласно равенству (2) при R0 = 1

Рисунок 1 – Функция преобразования координат из rp в rs согласно равенству (2) при R0 = 1

Согласно рис.1 при условии сохранения исходного пространственного разрешения (здесь и далее имеется ввиду центральная часть изображения) и его размеров после коррекции дисторсии угол обзора оптической системы со 180° сужается до 115° (см. результат на рис.2).

Рисунок 2 – Полная коррекция дисторсии согласно равенству (2) для rp <= R0

Рисунок 2 – Полная коррекция дисторсии согласно равенству (2) для rp <= R0

Если же увеличить размер выходного изображения по площади вчетверо при сохранении пространственного разрешения, то угол обзора оптической системы увеличится до 145°. Однако дальнейшее значительное увеличение размеров изображения не приводит к существенному увеличению угла обзора. Чтобы разрешить указанное противоречие необходимо модифицировать функцию f в F так, чтобы, с одной стороны, она была максимально близка к исходной в окрестности нуля по rs, а с другой стороны, для минимизации вторичных искажений была максимально линейной в окрестности единицы по rs. Таким требованиям, в частности, очень хорошо удовлетворяет функция F в виде

begin{equation} F(r) = frac {2R_0} {pi r} arctan left( frac {4 pi R_0^2 r} {8R_0^3 - r^3} right) + frac {2R_0} {r} Theta left( frac {r} {2R_0} - 1 right), (3) end{equation}

.

begin{equation} left{ begin{array} {} {Theta (x) = 0, x le 0,} \ {Theta (x) = 1, x > 0.} end{array} right. (4) end{equation}

Хотя использование равенства (3) вместо равенства (2) при увеличении площади изображения вчетверо и сохранении пространственного разрешения или при сохранении размеров изображения и уменьшения вдвое пространственного разрешения позволяет зафиксировать широкий угол обзора (180°), в то же время, такая модификация функции f не устраняет бочкообразную дисторсию периферической части изображения (см. рис.3).

Рисунок 3 – Неполная коррекция дисторсии согласно равенству (3) для rp <= 2R0

Рисунок 3 – Неполная коррекция дисторсии согласно равенству (3) для rp <= 2R0

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

begin{equation} boldsymbol{mathrm{r}}_t  = boldsymbol{mathrm{r}}_p G left( frac {x_p^2 y_p^2} {r_p^2}, cos left( frac {pi} {2} S left( frac{ x_p^2} {4R_0^2}, frac {y_p^2} {4R_0^2}, 1 + tan left( frac {pi r_p^2} {16R_0^2} right) right) right) right), (5) end{equation}

.

begin{equation}  G left( w, z right) = sqrt { frac {4wz} {1 + z - left( (1 + z) (1 + z - 8wz) right)^{1/2}} }, (6) end{equation}

.

begin{equation} S left( h,v,p right) = 1 - left( h^p +v^p right) ^ {3/2p}. (7) end{equation}

Для окончательной коррекции остаточной дисторсии к полученному с помощью равенства (5) промежуточному результату ещё необходимо применить равенства (1) и (3) в виде

begin{equation} boldsymbol{mathrm{r}}_s = boldsymbol{mathrm{r}}_t F(r_t). (8) end{equation}

Ниже на рисунках представлены результаты последовательных трансформаций изображений согласно равенствам (5) и (8) с учетом равенств (3), (4), (6) и (7).

Рисунок 4 – Коррекция дисторсии первого изображения

Рисунок 4 – Коррекция дисторсии первого изображения
Рисунок 5 – Коррекция дисторсии второго изображения
Рисунок 5 – Коррекция дисторсии второго изображения

Как видно из этих рисунков, при сохранении пространственного разрешения с увеличением площади исходного изображения всего вчетверо, а также сохранении широкого угла обзора (180°) бочкообразная дисторсия весьма эффективно подавляется по всему полю изображения.

Черные области на всех представленных изображениях отвечают переходам между rs и rp, когда вычисляемый вектор rs лежит за пределами исходного изображения.

Программа для превращения фишая в классический ширик AKA исправление дисторсии

Тема в разделе «Обработка фото», создана пользователем RED, 18 июл 2010.


  1. sergey10001

    Я, исчо совсем неопытный фотограф и фотошопер — но м.б. Вам вот это подойдёт —

    http://www.epaperpress.com/ptlens/

    У меня никогда фишая не было, поэтому оценить, как прога справится с фишаем не могу (но такая функция там есть). Но мою Sigmу 20/1,8 исправляет шикарно, равно как и старые фото с кита на 18 мм. Плюс этой проги в том, что там зашита масса характеристик конкретных линз, и исправления она производит в соответствии с конкретной линзой…

    Лекарства для этой проги в инете не нашёл, купил официально, весной мне это обошлось примерно в 750 руб. На сайте можно скачать демо-версию и демка даст
    Вам возможность обработать 10 снимков. Прога встаёт как отдельно, так и плагином в ФШ.

    Надеюсь, пригодится!


  2. RED

    спасибо! помню, была давно какая-то старая версия. сейчас скачаю, посмотрю как работает последняя.


  3. sergey10001


  4. sergey10001

    Покупайте, вроде недорого… Проплачивал со своей карточки на Пэй-Пал… А выложите, что у Вас получилось до и после — фишай мне умеренно интересен.
    Кстати, ИМХО, но и с ХА данная прога работает лучше, чем стандартный модуль в ФШ!


  5. RED

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


  6. Ундервуд

    Худсовет

    Регистрация:
    7 фев 2009
    Сообщения:
    8.298
    Симпатии:
    9.903
    Баллы:
    0
    Пол:
    Мужской
    Адрес:
    за МКАДом,Ногинск.
    Предупреждения:
    0


  7. sergey10001

    ИМХО, разницы почти не вижу… Как были полукруглые забор и фонари по центру, так и остались…


  8. Ундервуд

    Худсовет

    Регистрация:
    7 фев 2009
    Сообщения:
    8.298
    Симпатии:
    9.903
    Баллы:
    0
    Пол:
    Мужской
    Адрес:
    за МКАДом,Ногинск.
    Предупреждения:
    0

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


  9. sergey10001

    Обрежутся- так обрежутся… На мой взгляд, это обычная плата за юзанье «фишая», причём с желанием восстановить геометрию…

Поделиться этой страницей

Фотографии и видео, снятые широкоугольными объективами, имеют эффект «рыбий глаз», который иногда хочется исправить.

Kostel_sv._Kateriny_dron_prev.jpg Kostel_sv._Kateriny_dron_def1.jpg

Обычные средства, типа Photoshop-а, с сильной дисторсией могут не справиться или результат не будет «прямолинейным» (ортоскопическим).
Например, фото с квадрокоптера Xiro Xplorer V имеют примерно втрое большие искажения, чем может исправить Photoshop.
Больше возможностей даёт инструмент Barrel Distortion из программного пакета ImageMagick.
Однако для правильного использования этого инструмента необходимо задать 3 или 4 параметра искажения, что не очень просто.
Если для камеры не нашлось параметров в PTlens/Hugin/LensFun, то остаётся только подбирать или вычислять параметры искажения.
В документации на ImageMagick прелагается использовать Hugin, однако инструкция выглядит запутанной. Насколько я понимаю, требуется снять прямоугольную решётку дважды и отметить на снимках несколько десятков точек.

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

Для рассчёта параметров из координат можно воспользоваться подготовленным мною инструментом defish_calc.
Для работы инструмента необходим Excel и add-in «Solver» (также известный как надстройка «Поиск решения»).
1) Задайте размеры изображения — в поля B11 и B12
2) Задайте координаты от 5 до 10 точек (в B21:C30), которые лежат на одной линии, прямолинейной в реальности. Координаты можно взять как минимум с помощью Paint.
3) Запустите Solver на минимизацию поля L9 с подбором параметров I10:I14 (ограничения не требуются).
4) Результирующие числа a,b,c (в ячейках I10-I12) дадут параметры для Barrel Distortion.
В ячейке K15 вы получите почти готовую командную строку для преобразования картинки с помощью ImageMagick (вместо imput.jpg надо подставить имя файла и т.д.)

Примечания:
* По-умолчанию Barrel Distortion с 3 параметрами сохраняет на месте круг, касающийся краёв снимка, диаметр этого круга равен минимальному из габаритных размеров снимка (для горизонтальных кадров — высоте).
Углы исходного изображения при этом уходят за края и теряются.
Если вы хотите, например, сохранить всю ширину исходного горизонтального снимка, можно использовать Barrel Distortion с 4 параметрами. Для этого задайте в поля B15:B16 коордианты точки, которую нужно «зафиксировать» (для сохранения ширины это будет X=0 и Y=половина высоты снимка). После запуска «Solver» 4й искомый параметр — d (поле I16).

* Если после работы «Solver»-а отображаются статус NOK («Norm» получился больше 3 или «Norm of rounded» (L12) больше нуля или «Max difference» (L13) больше 1), значит параметры искажения подобраны недостаточно хорошо. Этому может быть 2 причины:
1) Указанные 5-10 точек не лежат на самом деле на прямой линии
2) Дисторсия снимка слишком сильная и Barrel Distortion не справляется

* Рисунок «Line and frame distortion» позволяет оценить прямолинейность восстановленной линии (Restored line) и какая часть (синяя рамка) исходного снимка (красная рамка) останется на исправленном изображении. Там где синяя рамка выходит за края красной — в исправленном снимке будет заполнение.

* Рисунок «Distorted line — measured and calculated» позволяет визуально оценить точность воспроизведения искажения с помощью Barrel Distortion. Красные кружки и синие крестики должны все совпадать.
График «Distortion function» показывает кривую функции R(r)

* Если Excel есть, а «Solver» использовать не получается, можно попробовать подобрать параметры a,b,c,p,q вручную, меняя их по одному всё более мелкими шагами в сторону уменьшения Norm. Достаточно довести «Norm of rounded» (L12) до нуля.

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

Математика
Barrel Distortion задётся уравнением:
R = ( a * r^3 + b * r^2 + c * r + d ) * r
где r — расстояние от пикселя до центра кадра на исправленном изображении, R — расстояние от пикселя до центра кадра на исходном изображении (искажённом дисторсией)
Это уравнение задёт с одной стороны саму дисторсию, с другой стороны формулу исправления дисторсии для механизма Reverse Pixel Mapping.
r=1 соответствует ближайшему к центру краю снимка (половина высоты для горизонтального снимка), по умолчанию этот радиус сохраняется, т.е. r=1 => R=1
Отсюда получается формула для 4-го параметра:
d = 1 — a — b — c
При сохранении другого радиуса (r0): d = 1 — a*r0^3 — b*r0^2 — c*r0
Прямая линия на исправленном изображении имеет уравнение:
p*x + q*y + 1 = 0
в радиальных координатах:
p*r*cos(f) + q*r*sin(f) + 1 = 0
Таким образом у нас 5 неизвестных: a,b,c,p,q => а значит нам нужно 5 уравнений их для нахождения.

Из координат (X,Y) заданных точек на искажённом изображении получаем их радиальные координаты R и f
Угол f и уравление прямой дают нам возможность посчитать r — расстояние на исправленном изображении.
r = -1/(p*cos(f)+q*sin(f))
Из этого значения и уравнения Barrel Distortion для каждой точки можно посчитать R’ — расстояние на искажённом изображении.
R’ = (a*r^3 + b*r^2 + c*r + d)*r
Нам нужны параметры Barrel Distortion, при которых R’ = R
Каждая точка даёт одно уравнение, однако это сложные нелинейные уравнения. Их можно решить численно через оптимизацию целевой функции.
В целом нам нужно добиться, чтобы заданные точки оказались в результате Barrel Distortion на тех же местах, поэтому из R’ и f получаем (X’,Y’)
Целевая функция оптимизации — сумма квадратов расстояний (X,Y)-(X’,Y’) по всем точкам:
Norm = Summ ( (X-X’)^2 + (Y-Y’)^2 )
Эту функцию необходимо минимизировать подбором неизвестных a,b,c,p,q
Если задать более 5 точек, то можно оценить точность нахождения параметров.

Полученные параметры Barrel Distortion для Xiro Xplorer V:
1) Для фотографий (4320х3240 или иного 4:3)
«0.0602051521391688 -0.186821319369571 -0.133623072628317»
2) Для фотографий (4320х3240 или иного 4:3) с сохранением ширины кадра
«0.151765060326058 -0.374280001474025 -0.21055353708688 1.58638531648197»
3) Для видео (1920х1080 или иного 16:9)
«0.0169891758465488 -0.0771539753571165 -0.0850908340028834»
4) Для видео (1920х1080 или иного 16:9) с сохранением ширины кадра
«0.0642398867473021 -0.211314302852179 -0.157126620422966 1.58625195846726»

Ещё примеры использования этих параметров для фотографий из сети. Примечательно, что все они сделаны по одному и тому же набору параметров (№1), снятых с моего снимка.
Mala_Ohrada_dron2_prev.jpg Mala_Ohrada_dron2_def1.jpg

2016_0908_160219_004_prev.jpg 2016_0908_160219_004_def1.jpg

А это пример моделирования видеокадра с сохранением ширины (набор параметров №4 выше):

Субъективно:
1) Все фотографии лучше смотрятся после корректировки искажения.
2) В большинстве случаев корректировка искажения не делает видео лучше или хуже.
3) Корректировка делает лучше видеосъёмку с видом вниз или если в кадре видна только земля и объекты на ней.
4) В случае поворотов камеры при стоянии на месте, скорректированная видеосъёмка получается хуже (объекты увеличиваются при движении к краю кадра и уменьшаются при движении к центру).

В планах — подготовка инструмента для более точной калибровки по нескольким прямолинейным объектам.

Другие инструменты и полезные ссылки по дисторсии и корректировке:
1) DEFISHEYE script from Fred Weinhaus
2) Инструкция для Fisheye-Hemi
3) Field of View Calculator
4) Are there any free or better alternatives to Fisheye-Hemi?

Manual defisheye with ImageMagick for Xiro Xplorer V

Понравилась статья? Поделить с друзьями:
  • Как найти основную страницу сайта
  • Как найти секс фильмы бесплатно
  • Как найти человека который тебя полюбит
  • Как составить ребус к слову клавиатура
  • Как найти фото в телефоне honor