Перевод 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ми простых шагах:

  1. Скачать PanoTools и PTAssembler.
  2. Установить PanoTools и PTAssembler. Первая Freeware, вторая Shareware с периодом 30 дней - хватит и одного.
  3. Запустить PTAssembler и проверить настройки в the "Files/Directories" tab of PTAssembler's preferences screen.


    PTAssembler needs to know were to find important files

     

  4. Начинаем с закладки Step1. Добавить любую необработанную картинку содержащую EXIF (JPG), снятую на вашей камере с FishEye:
    (Choose'File|Add Images...' or drag-and-drop image onto PTAssembler's Step 1 screen).


    4 images loaded into PTAssembler, а надо всего 1

     

  5. На закладке Step 2 устанавливается тип объектива.


    Only a few of these fields need to be modified

    Здесь нужно выбрать

    1. Lens Type: full-frame fisheye
    2. Panorama Projection: Rectilinear
    3. Interpolation Quality: какое хотите, в зависимости от мощности компа, рекомендуется Poly3
    4. и ПОСЛЕ этого нажать на Calculate using image Exif Data
      Если же Exif'а в файле почему-то нет, то для 15-16мм рыбьего глаза на 300D с кроп фактором 1.6 можно смело выставить HOV в 80-90 градусов.
    после чего можно переходить на закладку Step 5

     

  6. На закладке 5 нужно
    1. нажать Auto Size Parameters
    2. выбрать Output File Format
    3. нажать Show/Edit Script и скопировать скрипт


    Можно проверить что получается нажав на кнопку Preview или сгенерировав полноразмерную картинку

     

  7. Теперь можно сохранить скрипт в файл, например c:\fisheye.txt
    В этом случае можно написать batch file, для обработки 1го файла, например c:\defish.bat:
      F:\PanoramaTools_PTGui\PanoTools\PTStitcher.exe -o %1 c:\fish.txt %1
    или для обработки целой папки - c:\defish_folder.bat:
      for %%F in (*.jpg) do F:\PanoramaTools_PTGui\PanoTools\PTStitcher.exe -o %%F c:\fisheye.txt %%F
    Будучи запущенным в некоторой папке, этот скрипт переконвертит все JPG в ТIFF, или что вы там выбрали в качестве Output File Format, попутно устраняя FishEye-евость...
 
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
и то что получается:
=>
=>

Что в этом скрипте плохо

  1. Не корректируется перспектива.
    Понятно что автоматическим образом корректировать перспективу затруднительно - не известен угол наклона камеры.
  2. Люди-человеки по углам явно толстеют.
    Похоже что это издержки очень широкой Rectilinear проекции.
  3. Правильно конвертируются только кадры заданного размера.
    В принципе можно сделать пересчет размеров исходя из исходного кадра, но тогда проще уж собственную програму написать. Делов-то на пару часов.
  4. Еще хотелось бы автоматической коррекции Color Fringing (см Correcting Distortion and Color Fringing).
    Для этого нужна автоопределилка объективов, что просто, и нужны те загадочные a,b,c,d коэффициенты.
    Кто для Canon'a сделает ?

в общем комментарии велкам !

Что ещё можно сделать ?

  • Установить входящие в комплект плагины для фотошопа. Ими можно править много чего прямо из Фотошопа, см список статей в начале.
  • Поставить плагин Lens Distortion Corrector от Richard Rosenman.
    Он имеет очень простой интуитивный интерфейс, позволяющий корректировать фотографии с углом обзора менее ~70 градусов, что недостаточно для Зенитара. Однако качество интерполяции оставляет желать лучшего. Про различия качества интерполяции см статью Testing Interpolator Quality

    Замечания:

    Для пленочного скана данный метод приведет к довольно жестокой порнографии.
    исходный скан кадра 36x24, снятого Зенитаром/16rectalinear с HoV 130Циллиндрическая проекция
    => =>

    Однако такие фотографии, снятые параллельно земной поверхности имеет смысл переводить в циллиндричекую проекцию. Напечатав такую фотографию вы сможете обернуть ее вокруг лица и наслаждаться почти неискаженной перспективой.
    В случае же применения пеленга/8, ситуация становится еще хуже, так как поле зрения превышает 160 градусов. Тут может понадобиться заменить PanoTools на старую версию 1.1.9 или скачать патченую DLLку, разрешающую работать с углом зрения больше 160 градусов в обход патентов и копирайтов, и поместить её в %WINDOWS/SYSTEM32%.

    TopPhoto.ru - рейтинг фоторесурсов