Мостостроительство
Aug. 15th, 2017 07:30 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Стандартные инструметы вроде панорамы в Фотошопе и align_image_stack из Hugin выравнивать изображения отказались, скорее всего потому что между первым и последним кадрами приличная разница (лишний мост). Поэтому пришлось делать по-другому:
- Вбить названия файлов в электронную таблицу;
- Найти пару ключевых точек — одну в левом верхнем углу, вторую в правом верхнем;
- Каждый файл открыть в Фотошопе, подвести мышку к первой ключевой точке, записать в таблицу координаты x0 и y0 из информационной панели, повторить со второй ключевой точкой и записать её координаты x1 и y1;
- Наделать с помощью формул в электронной таблице командные строки для ImageMagick;
- Скопировать их в теримнал.
Пример команды:
convert orig/2013_0527_1104.tif -extent 5178x3652-241-1231 -rotate 0.368461030248915 -crop 3008x1692+398+1500 -resize 1920x1080 aligned/frame11040.png
Эта команда выполняет следующие действия:
- Добавить пустое пространство вокруг картинки так, чтобы правая ключевая точка оказалась точно в центре;
- Повернуть картинку так, чтобы линия между ключевыми точками была под тем же углом к горизонту, как у остальных кадров;
- Кадрировать, выдержав заданное соотношение сторон;
- Подогнать разрешение, чтоб было как у видео.
Чтобы получить требуемый угол поворота, нужно посчитать угол между горизонтом и линией, соединяющей ключевые точки α = 180° · atan((y1 - y0) / (x1 - x0)) / π, вычесть из него среднее значение α и изменить знак на прoтивоположный.
В этом же месте можно добавить панорамирование, немного сдвигая рамку от кадра к кадру.
Чтобы сделать переход от кадра к кадру более плавным, можно добавить промежуточные кадры для интерполяции, сложив соседние с весами, например, так:
composite -blend 66x34 aligned/frame11043.png aligned/frame16170.png -alpha Set inter/frame11041.png
Когда все кадры готовы, остаётся слить их в одно видео с помощью ffmpeg:
ffmpeg -framerate 6 -i 'inter/frame%*.png' -pix_fmt yuv420p -c:v libx264 -r 6 tz_timelapse.mp4
no subject
Date: 2017-08-16 02:11 am (UTC)