複数の写真から動画を作成する方法

複数の写真から動画を作成するには、OpenCV の VideoWriter メソッドを利用できる。例えば、あるディレクトリ中に含まれているすべての画像を、名前順に重ね合わせて、パラパラ漫画のような動画を作成数rには次のようにする。

import glob
import cv2 as cv

def create_movie(dir_path):
    output = dir_path + '/video.mp4'
    fourcc = cv.VideoWriter_fourcc(*'mp4v')
    outfh = cv.VideoWriter(output, fourcc, 24, (1024, 768))
    for photo_name in sorted(glob.glob(dir_path + '/*.jpg')):
        im = cv.imread(photo_name)
        outfh.write(im)
    outfh.release()

if __name__ == '__main__':
    create_movie('sample_dir')

ディレクトリに含まれている画像のサイズは、すべて同じである必要がある。VideoWriter で指定したサイズの画像でない場合に、処理されないようである。また、ディレクトリないにすでに同じ名前のビデオファイルがある場合は、エラーが起きて処理されない。