Edited at

フォルダ内の画像ファイルを名称順につなげてMP4ファイルを作成する パート2


はじめに

定点カメラを設置して一定間隔で写真を撮っていて、それなりに画像が溜まってきたら、全部つなげて動画作っても多少冗長な感じになってきました。

そこで、1日1枚の画像を選び、画像と画像の間をアルファブレンドで補間しながら動画を作ってみたので手順をまとめます。


画像ファイル準備

適当なフォルダに画像ファイルを保存。


スクリプト作成

保存した画像と同じフォルダに以下のスクリプトを配置。


make_mp4.py

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import glob
import cv2
from PIL import Image, ImageDraw, ImageFont

import numpy as np

files = glob.glob('./*.jpg')
files.sort()

FILE_NAME = "output.mp4"
FRAME_RATE = 30
FRAME_SIZE = (1280, 720)

rec = cv2.VideoWriter(FILE_NAME, cv2.VideoWriter_fourcc(*'XVID'), FRAME_RATE, FRAME_SIZE, True)

for i in range(len(files)):

file = files[i]
print(file)

img = Image.open(file)

img = np.array(img)
img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)

if i > 0:
for alpha in [0.3,0.5,0.8]:
img_buf = cv2.addWeighted(img, alpha, img_buf, 1 - alpha, 0)
rec.write(img_buf)

rec.write(img)

img_buf = img

rec.release()



スクリプト実行

以下のとおりスクリプトを実行。

python make_mp4.py

できた!