Entry tags:
Мостостроительство
Стандартные инструметы вроде панорамы в Фотошопе и 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