Navigation

Related Articles

Back to Latest Articles

複数の画像から動画ファイルを作る


press
複数の画像から動画ファイルを作る

複数の画像から動画ファイルを作る

前回に続き、今回は複数の画像をまとめて動画ファイルに変換する方法です。gifアニメーションを生成するときはPillowを使いましたが、動画を生成するときはOpenCVを使います。

コードはGitHubリポジトリにあげています。

前回の記事

モジュールのインストール

モジュールをインストールします。
リポジトリからクローンした場合は、以下のコマンドで必要なモジュールを一括インストールできます。

pip install -r requirements.txt

手動でインストールする場合は、以下のコマンドを入力します。

pip install opencv-python Pillow

※pipでインストールするのはopencv-pythonなので注意してください。

コード

import glob

import cv2

img_array = []
for filename in sorted(glob.glob("images/*.jpg")):
    img = cv2.imread(filename)
    height, width, layers = img.shape
    size = (width, height)
    img_array.append(img)

name = 'project.mp4'
out = cv2.VideoWriter(name, cv2.VideoWriter_fourcc(*'MP4V'), 5.0, size)

for i in range(len(img_array)):
    out.write(img_array[i])
out.release()

結果

動画ファイルのproject.mp4が生成されます

複数画像から動画ファイルを作る

解説

import glob
import cv2
モジュールを読み込む

img_array = []
imagesフォルダ内の画像を格納するリストを生成

sorted(glob.glob("images/*.jpg"))
imagesフォルダ内の拡張子がjpgのファイルを読み込む
*はワイルドカードで全てのjpgファイルが対象

img_array.append(img)
画像をimg_arrayのリストに追加

name = 'project.mp4'
out = cv2.VideoWriter(name, cv2.VideoWriter_fourcc(*'MP4V'), 5.0, size)
project.mp4という名前でmp4ファイルを生成

out.write(img_array[i])
リストに入った画像を動画に出力

補足

書き出す動画ファイルを指定することができます。今回はmp4で書き出していますが、以下の様にするとAVIで書き出します。

AVIで書き出す場合
cv2.VideoWriter_fourcc(*'DIVX')


当ブログは、群馬県でPython / Djangoを中心にウェブアプリケーションを開発している株式会社ファントムが運営しています。

投稿についてのお問い合わせ




Show Comments (0)

Comments

Related Articles

Django

DjangoでQuerySetをpandasのDataFrameに変換する

DjangoでQuerySetで取得したデータをそのままpandasのDataFrameに変換する方法です。データを成形する必要がないときや、とりあえず全件CSV化したいときなどに便利な方法です。

Posted on by press
Python

Pillowを使って画像をリサイズする

Pillowを使って画像をリサイズする方法です。GitHubリポジトリ Pillowのインストール バージョン確認 ディレクトリ構造 画像をリサイズ files = glob.glob('./images/*')imag […]

Posted on by press