Перевод FishEye to Rectilinear или недорогой суперширокоугольный объектив.
=>
=>
Не секрет, что для любительских цифровых зеркалок с кроп фактором 1.5 - 1.7 нет качественных широкоугольных объективов за приемлемую цену.
Canon EF 14/2.8L за 1,800$ или Tamron SP AF 14/2.8 за 1.050$ не в счет.
Бюджетные Canon EFS 18-55/3.5-5.6,
Nikon AF-S DX 18-70/3.5-4.5G
и Sigma 18-50/3.5-5.6
будучи установленные на любительские тушки Canon, Nikon и Sigma становятся всего лишь 29, 27 и 30мм в 35мм эквиваленте.
Таблицу углов охвата и поля зрения для 15мм FishEye и зум объективов, учитывая кроп-фактор можно посмотреть тут
В то же время существует недорогой (100$)
объектив МС Зенитар-М 2,8/16
производства "Красногорского завода им. С.А.Зверева", или МС Пеленг" 3,5/8А,
или МС Пеленг 2,8/17 производства Белорусского ГП "ММЗ им. С.И.Вавилова".
Про их использование на цифровой зеркалке D30 можно прочитать в статье "Рыбьи глаза".
При этом даже после ректилинеаризации поле зрения Зенитара/16 или Пеленга/17 будет больше, чем у любого супер-широкоугольника, включая Canon EF 14/2.8L.
Но достаточно почитать хотя-бы несколько статей про коррекцию проекции и перспективы, как голова идет кругом:
Однако хочется остановиться на каком-нибудь более-менее производительном варианте, который бы гарантировано справлялся с фотографиями моей камеры, без моего участия, т.е в потоковом режиме. Отсюда:
Последовательность действий для получения batch режима о 7ми простых шагах:
Sample Preview Script (preview.txt)
# This line describes the final panorama:
p w432 h252 f0 u20 v87 n"JPEG q90"
# These lines describe the individual input images:
# Image 1
i n"img_1017.jpg"
o f3 y0 p0 r0 v86.48416 a0 b-0.005633 c0 d0 e0 g0 t0
# These lines are used for the morph-to-fit feature:
# No morph-to-fit for preview mode
# This line sets global stitcher behavior:
m i7 g1
Sample Process Full Size (fisheye.txt)
# This line describes the final panorama:
p w2160 h1262 f0 u20 v87 n"TIFF"
# These lines describe the individual input images:
# Image 1
i n"img_1017.jpg"
o f3 y0 p0 r0 v86.48416 a0 b-0.005633 c0 d0 e0 g0 t0
# These lines are used for the morph-to-fit feature:
# This line sets global stitcher behavior:
m i7 g1
и то что получается (cнято Sigma/15 FishEye):
=>
=>
Что в этом скрипте плохо
Не корректируется перспектива.
Понятно что автоматическим образом корректировать перспективу затруднительно - не известен угол наклона камеры.
Люди-человеки по углам явно толстеют.
Похоже что это издержки очень широкой Rectilinear проекции.
Правильно конвертируются только кадры заданного размера.
В принципе можно сделать пересчет размеров исходя из исходного кадра, но тогда проще уж собственную програму написать. Делов-то на пару часов.
Еще хотелось бы автоматической коррекции Color Fringing (см Correcting Distortion and Color Fringing).
Для этого нужна автоопределилка объективов, что просто, и нужны те загадочные a,b,c,d коэффициенты.
Кто для Canon'a сделает ?
в общем комментарии велкам !
Альтернативные пути коррекции бочкообразных искажений
Установить входящие в комплект плагины для фотошопа. Ими можно править много чего прямо из Фотошопа, но очень сложно, см список статей в начале.
Поставить плагин Debarrelizer от ImagingFactory (всего 80k)
Он имеет еще более интуитивный интерфейс, корректирует любые фотографии и имеет всего 3 недостатка: является платным, слегка сужает HFoV и интерполирует с не лучшим качеством.
Про различия качества интерполяции см статью Testing Interpolator Quality Тем не менее, если лень качать и разбираться с панотулс, этот плагин является панацеей.
В паре с ним стоит попробовать плагин Perspective для изменения перспективы.
Существуют ещё плагины Lens Distortion Corrector от Richard Rosenman.
Он имеет очень простой интуитивный интерфейс, позволяющий корректировать фотографии с углом обзора менее ~70 градусов, что недостаточно для Зенитара. Да и качество интерполяции оставляет желать лучшего.
и Andromeda LensDoc. Последний обладает кучей возможностей, но к нему сложно найти лекарство.
Замечания:
Для пленочного скана данный метод приведет к довольно жестокой порнографии.
исходный скан кадра 36x24, снятого Зенитаром/16
rectalinear с HoV 130
Циллиндрическая проекция
=>
=>
Однако такие фотографии, снятые параллельно земной поверхности имеет смысл
переводить в циллиндричекую проекцию. Напечатав такую фотографию вы сможете обернуть ее вокруг лица и наслаждаться почти неискаженной перспективой.
В случае же применения пеленга/8, ситуация становится еще хуже, так как поле зрения превышает 160 градусов. Тут может понадобиться заменить PanoTools на старую версию 1.1.9 или скачать патченую
DLLку, разрешающую работать с углом зрения больше 160 градусов в обход патентов и копирайтов, и поместить её в %WINDOWS/SYSTEM32%.
Полезные ссылки
Fisheye to Rectilinear - базовая статья о том что получается при съемке рыбьим глазом на пленке, кропе и при ректилинеаризации.