2022/11/02

pythonでOpenCVを使ってタイムラプスを作成する


pythonには、OpenCVという強力な画像処理ライブラリがあります。
本記事では、これを使って画像からタイムラプスを作成する方法をまとめています。

OpenCVについて

OpenCV(Open Source Computer Vision Library)は4万7千人以上のユーザーコミュニティを持ち、ダウンロード数は1800万を超える超有名オープンソースライブラリです。
画像や動画の処理や物体検出などが可能です。

公式HPは下記です。

ドキュメントは下記です。

OpenCVのインストール

以下のコマンドを実行します。

pip install opencv-python

pythonでライブラリをインストールする場合、仮想環境を準備することをお勧めします。

(参考)pipenvを使用した仮想環境の準備方法

タイムラプス作成

OpenCVライブラリを利用することで、複数画像を結合してタイムラプスを作成することができます。
下記は、このプログラムが保存されている場所に、タイムラプスをmp4形式で出力するプログラムです。

import cv2
import glob
import tkinter
from tkinter import filedialog

tk = tkinter
tk.Tk().withdraw()

path = tk.filedialog.askdirectory()

images = glob.glob(path + '/*.png')
images.sort()

frame_rate = 10
width = 1920
height = 1080

fourcc = cv2.VideoWriter_fourcc('m','p','4','v')
video = cv2.VideoWriter('timelapse.mp4', fourcc, frame_rate, (width, height))
print("build movie...")

for i in range(len(images)):
    img = cv2.imread(images[i])
    img = cv2.resize(img,(width,height))
    video.write(img)

video.release()

tkinter

glob.glob(path)

VideoWriter_fourcc(c1, c2, c3, c4)

VideoWriter(filename, fourcc, framerate, framesize)

imread(filepath)

resize(image, size)

VideoWriter.write(image)

VideoWriter.release


以上で、画像からタイムラプス動画が作成できます。




コメント(githubのアカウントが必要です)