Предыстория
Пару лет назад на Хабре была статья, посвящённая Адаму Мадьяру Камера Эйнштейна: как один фотограф изображает время. Мне она показалась очень интересной, но, если честно, то я так и не понял технологию для съёмки видео Stainless. Особенно меня восхитили его фотографии поезда метро. После чего я задался мыслью: а могу ли я сам создать нечто подобное?
Постановка задачи
Недалеко от села, где живут мои родственники, проходит железная дорога и поехав однажды в гости, я прихватил с собой камеру и штатив. Суть задачи, которую я поставил перед собой сводилась к тому чтобы создать панорамное изображение поезда, достаточно длинное, чтобы его невозможно было снять просто собрав плоскую панораму. То есть, я собрался отснять видео и вырезав по центральной полоске с каждого кадра объединить их в надежде получить очень длинную и красивую панораму. Поскольку я являлся счастливым обладателем камеры Canon EOS 600D (технические характеристики) с максимальной частотой 60 FPS при разрешении видео 1280x720, то расчитывать на более высокую частоту не приходилось. С другой стороны панорама высотой 1280 пикселей превосходит вертикальное разрешение большинства мониторов. Поэтому, я полагал, качество результата должно меня устроить.
Примеры в сети Интернет
Прежде чем продолжить я хотел бы привести список ссылок на работы по данной тематике, которые мне удалось обнаружить.
- Fundamentals and Experiments of Line Scan Camera. Собственно сами панорамы: раз и два
- Bending time. A showcase of photographs from Andreas Chudowski and Adam Magyar
- Kropilak
Съёмка! Мотор! Поехали!
Итак, я установил штатив на расстоянии порядка 10 метров от рельсов (чем ближе к рельсам, тем сильнее тряска камеры) и установил камеру в вертикальном положении. Поскольку нам из всего видео кадра нужна лишь средняя полоска, то правильнее всего устанавливать камеру именно в вертикальном, а не горизонтальном положении, так как в этом случае разрешение панорамы будет выше. Например, при горизонтальная ориентация 1920Х1080 даст нам панораму высотой 1080 пикселей, а вертикальная ориентация 1080x1920 даст нам панораму высотой 1920 пикселей.
Съёмку видео лучше всего вести в ручном режиме, т. е. без участия автоматики. Когда объект попадает в кадр, то может сильно измениться освещенность сцены, что заставит камеру поменять выдержку или диафрагму, а это делать нежелательно. Иначе разные части, например, поезда могут быть различными по яркости. Частота кадров для выбранного разрешения естественно должна быть максимальной. Съёмку начинаем секунд за 5-10 до того момента как объект попадёт в кадр. Во-первых, на всякий случай, во-вторых, камера перестала шевелиться после нажатия на кнопку записи, и в-третьих чтобы можно было выбрать фоновый кадр (если освещение быстро меняется, например из-за облаков). Заканчиваем съёмку тоже не сразу, а спустя секунд 5. На своём личном опыте я убедился, что при съёмке желательно просчитать будет ли входить объект в кадр полностью и не будет ли лишнего пустого пространства. У меня на нескольких панорамах верхняя часть поездов немного обрезана. Ну и конечно, желательно выставить ручной фокус и заранее сфокусироваться на объекте (хоть это и трудно бывает сделать, ведь самого объекта пока ещё нет).
Программная часть
Мною была написана программа Trainz Pano (C++ Builder XE3). Приложение 64-разрядное, ОС — Windows 7/8/10. Она заточена именно на создании панорам из видео. Программа доступна как коммерческий продукт и легко гуглится.
Работа с приложением
Чтобы облегчить жизнь и себе и пользователям я разбил процесс создания панорамы на две части: собственно сборку и редактирование. Сделано это по причине того, что большой объём данных лучше сохранить на промежуточном этапе, чтобы их не потерять. Именно по этой причине приложение является 64-битным.
Открытие видео
Я не стал заморачиваться с декодированием видео самостоятельно, моё приложение использует FFMPEG и сначала получает из видео набор изображений, а потом уже с ними работает.
Настройка параметров фона
На самом первом изображении Вы можете видеть повторяющийся узор в качестве фона. Связано это с тем, что из каждого кадра вырезается полоска шириной порядка нескольких десятков пикселей. Собственно они и повторяются, если не перекрываются объектом. Чтобы избавиться от такого фона и заменить его на монотонные линии в приложении есть возможность автоматизировать этот процесс. К сожалению, результат меня иногда немного разочаровывает, поэтому для получения качественного результата после процесса сборки можно перейти к ретушированию.Итак, настраиваем параметры фона.
Сборка панорамы
При съёмке видео камера, по отношению к объекту может быть расположена не прямо, а под некоторым углом. Кроме того, камера может быть расположена под углом к траектории движения объекта. Чтобы компенсировать их влияние в приложении имеются два элемента управления: Вращение и Перспектива. Они определяются путём подбора таким образом, чтобы получаемое изображение не имело зазубрин при стыковке отдельных участков. Ещё один параметр — это Ширина. Он нужен для указания ширины полосок, которые будут вырезаться из текущего кадра и добавляться в результирующую панораму. Все три параметра можно менять в процессе сборки панорамы. Однако чаще всего Вращение и Перспектива настраиваются на начальном этапе и в дальнейшем не меняются. А вот параметр Ширина может меняться, так как скорость движения объекта может быть непостоянной. В моём случае я много раз сталкивался с ускорением и замедлением движения поездов.
Если мы снимаем видео в вертикальной ориентации, то нам понадобится указать в главном меню угол поворота кратный 90 градусам. Есть ещё один момент, который следует учитывать. Когда я писал программу, то исходил из того, что движение объекта осуществляется справа-налево. Что делать, если в действительности движение объекта осуществляется слева-направо? Для этого можно на этапе сборки использовать пункт отразить слева-направо, при этом все надписи мы получим в зеркальном отражении. А на этапе ретуширования воспользуемся командой Отражение панорамы слева-направо и всё встанет на свои места.
Ретуширование панорамы
Чтобы избавиться от повторяющегося фона (если программа не смогла сделать это сама) или восстановить изображение объекта, если он был неверно определён как фон загружаем наше изображение (точнее слои изображения, там их 3) в программу Trainz Pano Editor. Вот краткий список функций, который предоставляет программа:
- Ретуширование
- Добавление столбов
- Удаление столбцов
- Вертикальная заливка фоном
- Добавление строк
- Удаление строк
- Горизонтальная заливка фоном
- Градиентный переход
- Ускоренное движение
Видео работы с программой
On-line справка находится здесь.
Просмотр панорам
При сохранении панорам выявилась одна неприятная деталь, а именно — формат JPEG имеет ограничение на размеры изображения. Для длины и ширины используются 2 байта, поэтому записать панораму длиной более 65535 пикселей не удастся. В то же время у меня были панорамы длиной по 200 000 пикселей и более. Сохранение в BMP и PNG проблем не создаёт, вот только изображения в этих форматах занимают много места на диске. При попытке открыть для просмотра большие панорамы тоже возникли некоторые проблемы. XnView и XnViewMP показывают месиво из пикселей, о чём я написал автору программы, надеюсь в ближайших версиях этот баг пофиксят. Встроенный просмотровщик Windows Фотографии открыл на ура, не подкачал и InfanView. В общем следует исходить из того, что не все вьюверы покажут нам длинные панорамы корректно.
Примеры моих работ
Ознакомиться с некоторыми примерами моих работ можно на сайте. Правда, там они значительно уменьшены в размерах.
Возможная область применения
Помимо панорамных съёмок поездов программу можно использовать для создания панорам колонн авто или мото техники, судов, колонны людей на парадах, демонстрациях, манифестациях. При наличии хороших дорог можно попробовать снять панорамные изображения улиц или пейзажей, например, с поезда, трамвая или автомобиля.
Планы по улучшению приложения
- Чтение кадров напрямую в приложение без необходимости промежуточного сохранения изображений на диск.
- Улучшить скорость сборки панорам.
- Написать новый алгоритм определения фона.
- Написать JavaScript библиотеку с использованием HTML5 Canvas для отображения очень длинных панорам.
Выводы
- В настоящее время на рынке нет приложений для создания панорамных изображений из видео файлов.
- Те единичные примеры панорам, что доступны в сети, как правило, созданы с использованием домашних заготовок, не являющихся готовыми коммерческими продуктами.
- Программа Trainz Pano в какой то мере решает озвученную выше задачу.
- К сожалению, в программе Trainz Pano пока что реализована недостаточно качественная технология отделения объектов от фона, что (в общем случае) приводит к необходимости ретуширования панорамы в довольно большом объеме.
- Вместе с тем, при грамотном использовании (выборе удачного места съёмки против монотонного фона) программа вполне может быть использована как профессионалами так и любителями цифрового фото.
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Комментарии (69)
Kidar
23.04.2016 00:05-1Тот случай, когда для удобнее вертикальное видео.
Имеются ли подобные панорамы с колонной автомобилей (или просто улицей), людьми, животными или насекомыми (например, муравейник).alekseev_ap
23.04.2016 09:05С автомобилями есть. Но, если честно, есть определённые проблемы с ними. Если в центральной области в один момент пересекаются автомобили едущие в разные стороны или хотя бы с разной скоростью, то получается как на этой панораме у Адама Мадьяра . Т.е. не соблюдаются пропорции объектов. Они начинают зависеть от скорости движения объектов. А мне это не очень нравится. Я бы хотел чтобы объекты на панораме имели те же пропорции, что и в обычной жизни. Поэтому такие вещи не публикую.
Что касается людей, то в самом ближайшем времени планирую осуществить съёмку.
А по поводу животных и насекомых пока планов не имею.tautomer
23.04.2016 15:37«Линейный размер зависит от скорости движения объекта» — это как будь-то цитата из следствий теории относительности. Может такие панорамы смогут наглядно проиллюстрировать этот эффект?
alekseev_ap
24.04.2016 12:40А я и привёл ссылку в предыдущем комментарии. Посмотрите на панораму внимательно, думаю всё сразу станет ясно.
chersanya
23.04.2016 00:13А скорость программа сама почему не определяет?
alekseev_ap
23.04.2016 08:58Да, предложение дельное. В будущем так и планирую сделать. А на первом этапе для съёмки поездов я считал, что скорость более менее постоянная.
ivlis
23.04.2016 00:25-1Не понятно чем это отличается от того, что я просто нашлёпаю поезд со, скажем, 30FPS (в jpg это не проблема для зеркалки, даже не особо крутой) и потом склею в Lightroom.
Randl
23.04.2016 00:31+2Топовый Canon EOS 1D X Mark II дает 16 FPS максимум. У какой (тем более не особо крутой) зеркалки 30 FPS фото?
ivlis
23.04.2016 00:49-2Да, действительно, 30 FPS я загнул. Хотя беззеркалки и 60 могут:
«In March 2014, Nikon claims its Nikon 1 V3 mirrorless interchangeable-lens camera has the world's fastest burst mode of 20fps Auto Focus tracking and 60fps at the first shot autofocus, both in 18.4MP full resolution.»
Непонятно в чём проблема сделать такое же в зеркалке, зеркало то всё равно блокируется, ну не суть.
Но пусть будет 6.3 FPS, как в моём 50D. Пусть поезд идёт 60км/ч, значит за время между кадрами он приходит 2.6 м. Чтобы это расстояние попало в пол кадра, нужно чтобы размер области кадра был примерно 5-6 метров по горизонтали. Но это с полным кадром, то есть 3168 пикселей по вертикали, а у автора 1000. Всё равно не понятно, зачем нужна специальная программа.Randl
23.04.2016 00:59-1Проблема, наверное, в том, что матрица в разы больше.
На поезд, конечно и FPS и буфера средней зеркалки хватит, а вот что-то более быстрое или долгое может и не получиться.
ivlis
23.04.2016 01:33-1Ну а что-то более быстрое и долгое продемонстрировано не было. Даже если и писать видео, то можно писать в RAW, потом выдернуть отдельные кадры и скормить любой программе для обработки фотографий.
barkalov
23.04.2016 04:54У беззеркалок затвор электронный, у зеркалок — механический. Недолго он протрещит на 30fps.
creat0r
23.04.2016 11:37-1Буфера не хватит столько кадров за раз записать. А сразу на флешку только свежие модели (типа 70D) могут успевать писать непрерывно, и то — среднего разрешения jpeg'и.
alekseev_ap
23.04.2016 09:32+2Отличие в том, как Вы потом будете это склеивать. Вот типичный пример. Проходит состав (порядка 90 вагонов). Время прохождения состава 1 минута. Итого имеем для обработки 30*60=1800 кадров. Так вот, каждый кадр (необязательно, но очень вероятно, чтобы добиться хороших результатов) надо слегка повернуть, применить эффект перспективы, из каждого кадра надо вырезать полоску определённой длины и удалить фон.
Вы не запаритесь?
Trainz Pano же, большую часть операций выполнит в автоматическом режиме.
Если же Вы имеете в виду, то, что можно просто нащёлкать кадров поменьше (из каждого кадра брать не тонкую полоску, а большую его часть) и склеить их как обычную панораму, то геометрические искажения и разрывы в местах стыковки будут бросаться в глаза и Вы потратите уйму времени на их ретуширование.
Товарищ Kropilak, кстати, именно так и делал (судя по изображениям). Но его не надолго хватило. Относительно большого размера части панорамы очень небольшой длины, а вся панорама целиком крайне невысокого разрешения. Думаю это именно потому что трудозатраты на ретуширование при таком подходе достаточно велики и вряд ли найдётся много людей готовых создать подобным образом панораму из нескольких десятков вагонов.sim31r
23.04.2016 10:30-1Некоторые операции может выполнять Irfan View, бесплатная смотрелка фотографий в batch режиме обработке изображений, как через gui, так и через командную строку, crop, rotate, resize фильтры и т.п.
DrZlodberg
24.04.2016 11:05-1На самом деле программы для автоматического сшивания панорам справятся с этим без проблем. Та же Pano Tools например. Но делать она это будет ооооооооооочень долго, если вообще памяти хватит. Главное указать цилиндрическую проекцию на выходе, а то могут быть весёлые эффекты. Возможно потребуется также задать нестандартные параметры объектива, чтобы панорама не обвивалась сама вокруг себя пару десятков раз :)
Кстати теоретически с этим справится также режим панорамной съёмки в андроидовской камере. По крайней мере эксперементы с ней в какой-то старой версии навели на мысль, что именно так она и работает: По узкому фрагменту, и только по краям добавляет полукадры.alekseev_ap
24.04.2016 12:37-2Полагаю, что нет. По крайней мере у меня в PTGui не получилось.
Проблема в том, что программа находит контрольные очки не только на объекте, но и на фоне.
Это означает что Вам придётся все автоматически найденные точки удалить и всю работу проделать самому. Я так и сделал.
Но это ещё не всё. Программа — она умная, и знает, что окружность состоит из 360 градусов. Что это означает применительно к данному вопросу? Это означает, что она будет накладывать продолжение состава сначала на голову поезда, а потом пойдёт по кругу. Результат налицо.
Указанным Вами способом можно собрать панораму из пары вагонов, но чтобы собрать состав понадобиться разбить работу на отдельные куски, собрать их, а потом, соединить в единое целое. Трудоёмкость зашкаливает к сожалению…DrZlodberg
25.04.2016 08:13-1Про фон да, это я не подумал. А про перехлёст я писал: возможно поможет задание нестандартного очень узкого объектива. Если не снимать на ширик то на качестве это сильно сказаться не должно. Но полностью не уверен.
Zenker
23.04.2016 00:36+5В принципе, каждый наверняка хоть раз встречал такие «панорамы» во время спортивных трансляций, потому что по этому принципу как раз работает фотофиниш, выдавая иногда очень причудливые картинки. Только там используют специально предназначенные для этого линейные камеры.
alekseev_ap
23.04.2016 08:43+1Всё верно, но они очень дорогие. Я ставил перед собой задачу написать софт для обычных фото или видео камер. Кстати, современные экшен-камеры сильно продвинулись по частоте и моя Xiaomi Yi даёт 120 FPS при HD разрешении и 240 FPS при разрешении 848x480.
frog
23.04.2016 01:51-1> нет приложений
Несколько лет назад делал из видео панорамы. Точно помню, что программа была microsoft'овская.
Вроде бы вот эта:
http://research.microsoft.com/en-us/um/redmond/projects/ice/alekseev_ap
23.04.2016 08:55-1Эта программа, судя по описанию на сайте подходит для создания обычных плоских или сферических (цилиндрических) панорам. Возможность выбора или удаления объектов есть во многих похожих редакторах. Сам я лично для подобных задач использую PTGui. Чтобы скрыть объект или наоборот какой то из них выделить в PTGui используются маски (так же как и в обычных графических редакторах). Для тех примеров, что приведены на сайте по Вашей ссылке она бы точно подошла. Но эта и многие (если не все) программы не позволит Вам создать панораму поезда или колонны людей. Здесь своя специфика.
justmara
23.04.2016 02:20Милота какая. На каждой результирующей картинке стабильно один и тот же rolling shutter. Мимими. Ну уж его-то вообще убрать при подобной обработке- самое милое дело.
alekseev_ap
23.04.2016 09:36-1Честно говоря не заметил. Ткните пальцем, на какой картинке?
justmara
23.04.2016 11:41-1На всех. Если вам не бросается в глаза, то открываете в редакторе и сверяете вертикальные линии.
justmara
23.04.2016 11:45-1уж не говоря, что конкретно на этой картинке окно в левой двери волшебное стало :)
alekseev_ap
23.04.2016 12:21-1Если он там и присутствует, то его значение очень мало. Что касается окна, то, да — неравномерность движения даёт о себе знать. Идеальная сборка потребует достаточно много времени.
justmara
23.04.2016 13:57Здесь тоже мало?
Это ж зависит от того, с какой скоростью ехал поезд во время съёмки. Ну и от личного восприятия геометрии на картинке.
При переходе на сайт мне сразу бросается в глаза наличие этого искажения (на примерах в статье вообще ад). С дргой стороны — я не заказчик :) Если вас такой результат устраивает, то и ваше личное дело. Я лишь обратил внимание на то, что вы, похоже, не заметили.justmara
23.04.2016 14:07+1Возможно, что здесь не только shutter, но и отклонение вертикали при установке самой камеры добавляется, потому что небольшая лесенка при склейке горизонталей всё же есть местами. Но то, что shutter есть — это 100%. Потому что искажение прямых углов тоже есть, его видно.
ehs
24.04.2016 14:31+1Это однозначно не Rolling Shutter если автор снимал видио в портретной ориентации, а я так понял именно так он и снимал. Rolling Shutter по своей природе проявляется на движушихся паралельно с длинной стороне матрицы объектах.
CAJAX
23.04.2016 23:09+1Вообще, при том, что камера повернута на 90 градусов, rolling shutter если и должен проявляться, то только в виде сплющивания/растягивания, а не наклона.
djsonic
23.04.2016 09:44+1Меня вот интересует вопрос, существует-ли в природе программа, которая из видео может сделать цилиндрическую панораму? Работа по принципу сканера, камера на штативе, режим видео, делаешь оборот 360 градусов и в программе получаешь сшитый jpeg, уже исключая возможные дефекты из-за параллакса, т.к. из каждого кадра берется область шириной 1 пиксель и подшивается в финальный результат + контроль скорости движения оборота по общему видео, на случай неравномерного поворота.
1vanK
23.04.2016 10:17-1Не знаю как с остальными панорамными фото, но в данном случае я бы просто один вагон сфотал и продублировал хоть 1000 раз. Реально кто-то видит разницу между ними? Заодно и всех этих артефактов не будет
sim31r
23.04.2016 10:38+1+можно вагон случайно чередовать с его зеркальным отображением, немного расширять и суживать. Так можно сделать бесконечную панораму и генерировать её в реальном времени.
alekseev_ap
23.04.2016 10:46Если стоит задача просто создать некую виртуальную фотографию состава, то почему бы и нет?
Но для меня, и думаю для многих, важна аутентичность фотографии.1vanK
23.04.2016 12:29-1О какой аутентичности идет речь, когда вырезан фон и размазаны рельсы?
alekseev_ap
23.04.2016 16:35О той её части, что осталась после вырезания фона, а именно о аутентичности самого объекта съёмки. Фон, в данном случае, я объектом не считаю.
mezastel
23.04.2016 11:16-1Вообще интересная идея, единственное что разрешение низковато. Можно конечно делать то же самое на 4К, но даже так, вертикальное разрешение будет 2160, что соответствует примерно 20см по вертикали при печати с 300dpi. То есть, картинка более чем достаточна чтобы выкладывать в интернет, но с печатью уже проблемы.
И еще, у большинства бытовых пользователей нет камеры с global shutter, а следовательно у них, как и у вас, все вертикали будут не совсем вертикальны из-за rolling shutter эффекта. Это конечно можно пофиксить программно, но делая shear на градус-другой вы рискуете потерять информацию, которой и без того мало.
alekseev_ap
23.04.2016 12:34Разрешение собранной панорамы 1280 пикселей по высоте. Это больше чем разрешение монитора FullHD.
Можно конечно делать то же самое на 4К, но даже так, вертикальное разрешение будет 2160, что соответствует примерно 20см по
вертикали при печати с 300dpi.
Если делать так, как я описал в статье, то вертикальное разрешение будет 4K.
То есть, картинка более чем достаточна чтобы выкладывать в интернет, но с печатью уже проблемы.
Эта программа для создания сверхдлинных панорам (многие десятки вагонов). Если Вы распечатаете её на рулоне шириной 20 см (А4 в альбомной ориентации), то не во всякой комнате сможете её повесить (стена будет слишком короткая).
По поводу rolling shutter эффекта я уже писал — нет там его (минимален). Кроме того, если уж здесь все такие специалисты по этому эффекту, то я хочу напомнить, что этот эффект не свойство программы — это свойство конкретной матрицы. Покупайте другую камеру — не будет у Вас rolling shutter.mezastel
23.04.2016 12:36-1Да, я уже понял что неправ в этом плане. Тут не rolling shutter, но вертикаль все же немного неровная — мы можете сами это проверить открыв картинку в редакторе. Например двери вагонов не совсем вертикальные. Это некритично конечно — там градус-два, не более.
Насчет rolling shutter, это к сожалению во всех консюмерных матрицах так. Есть конечно всякие Black Magic, но это экзотика.
ANTPro
23.04.2016 12:59+1Я нарезал панораму на вагоны, чтобы снять ограничение на размер изображения. Панорама генерировалась полностью автоматически(не в реальном времени, а после проезда поезда).
Вот эта использовалась для распознавания номера:
https://habrastorage.org/files/f8a/fbe/c09/f8afbec0997e40c7b925e06c6859a698.pnguser11111
23.04.2016 16:33-1А чем «Панорама генерировалась полностью автоматически»?
ANTPro
23.04.2016 20:43ПО сами писали. Камера была с глобал шаттером. Калибровали дисторсию и «выравнивали» плоскость поезда с камерой. Лет 5 назад — это было.
alekseev_ap
23.04.2016 20:54-1Здорово! А где можно посмотреть результаты Вашего труда? Та картинка, ссылку на которую Вы опубликовали не особо информативна.
ANTPro
23.04.2016 21:27Там не только мой труд :) ПО не публичное. А на домашнем компе вроде нет других скриншотов.
darkfrei
23.04.2016 13:04-1Попадалась как-то «ekspozzer», там пытался делать круговую панораму из видео, но камера вращалась с различной скоростью и хорошого результата достичь не удалось.
SkyHunter
23.04.2016 14:16-1Круто.
Только«Светлота» — это, наверное, «Яркость», да? :-)Moskus
23.04.2016 19:30Уткнулись в ограничения форматов по ширине? Почему бы не использовать менее примитивные форматы, например — Jpeg2000 или BigTIFF?
И rolling shutter во всей красе, да…alekseev_ap
23.04.2016 20:50Потому что не вижу смысла в использовании TIFF (это не формат для публикации изображений в Интернет), а для последующей обработки без потери качества приложение умеет делать экспорт в PNG и BMP. JPEG является самым популярным форматом в Сети и файлы в этом формате весят заметно меньше, чем те же PNG или BMP. Что касается JPEG2000, то вот что написано в Википедии:
Пока этот формат мало распространён и поддерживается не всеми современными браузерами.
Moskus
23.04.2016 21:51Вам шашечки или ехать?
Если «популярные и распространенные» форматы что-то не могут делать принципиально без нарезки на тайлы, например, то использовать для хранения полного разрешения менее популярный, но предназначенный именно для хранения изображений гигантских (по меркам того, что публикуется в сети) — совершенно логично.
А уж для нужд представления можно нарезать его на тайлы в JPEG, подключить их к leaflet и так далее.alekseev_ap
23.04.2016 22:55Совершенно верно. Именно поэтому моя программа (повторюсь специально для Вас) умеет экспортировать в такие форматы как BMP и PNG. В JPEG экспорт тоже возможен, но если размер панорамы не превышает 64K пикселей. В противном случае (так как публикация по-любому будет идти в JPEG в целях экономии трафика и места на хостинге) сперва идёт сохранение в PNG/BMP, а далее или (как Вы сказали) нарезка на тайлы, или масштабирование до размеров 64K (или менее) в графическом редакторе и сохранение в JPEG.
По-моему я достаточно подробно объяснил.
silvansky
25.04.2016 13:03Круть! Я сам недавно писал программу для щелевой съёмки, но в отличие от Вас я не делал щель переменного размера, ограничился шириной в один пиксель (поэтому с склейкой проблем не получил). Сначала это была съёмка в реальном времени на iPhone, но потом и десктопную версию для пост-обработки видео сделал (туда добавил ещё и rolling-shutter эффект).
Вот теперь, вдохновлённый Вашим постом, попробую ещё и поезд сфоткать. ;)
Пара кадров с разными режимамиalekseev_ap
25.04.2016 17:25-1Здорово! А какая кадров в секунду у Вашего iPhone?
silvansky
25.04.2016 17:39-1Мой 6+ выдаёт в моей программе порядка 60 FPS, новые модели до 120 выдают, но в теории могут и больше — 120 у меня сейчас ограничение искусственное. Надо кстати попробовать его смягчить для последних моделей.
А видео я снимаю 240 FPS для пост-обработки. Так красивее всего выходит. =)
Вот и поезд я планирую сначала заснять в 240 FPS, а затем прогнать через мою утилитку. И посмотрю, что получится.alekseev_ap
25.04.2016 19:15-1Скиньте ссылку на результат, когда сделаете. Интересно было бы посмотреть.
maisvendoo
Такой знакомый и в чем-то даже родной электровоз ЭП1М )