Navigation

Related Articles

Back to Latest Articles

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


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

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

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

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

前回の記事

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

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

pip install -r requirements.txt

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

pip install opencv-python

※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

    Python

    気象庁の天気予報をBeautifulSoup4でスクレイピング

    気象庁の天気予報をBeautifulSoup4でスクレイピングします。サンプルとして群馬県の週間天気予報(場所、日付、曜日、最高気温、最低気温)を取得します。 コードはGitHubリポジトリにあげています。 週間天気予報 […]

    Posted on by press
    Python

    Pythonのdatetimeで日付や時刻を扱う

    Pythonのdatetimeで日付や時刻を扱う Pythonには日付や日時を扱うdatetimeモジュールがあります。今回はこのdatetimeモジュールを解説します。 開発環境 現在の日付を取得 現在の時刻を取得 現 […]

    Posted on by press