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


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

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

前回に続き、今回は複数の画像をまとめて動画ファイルに変換する方法です。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を使ったAIやソフトウェアを開発している株式会社ファントムが運営しています。




    Show Comments (0)

    Comments

    Related Articles

    Python

    衣服の種類を判定する学習モデルについて

    衣服の図面画像を読み込ませるとその種類を返すシステムを作成した。 学習モデルについて 画像から輪郭だけを抽出した輪郭画像と、オリジナル画像の2つを入力データにすることにした。 例えばTシャツならTの字になっているし、スカ […]

    Posted on by EIGHT
    Python

    SeleniumでChromeが立ち上がらない

    SeleniumでChromeが立ち上がらない Pythonでスクレイピングする時にSeleniumでChromeを立ち上げますが、その際に以下のエラーが出てブラウザが起動しない場合があります。その時の解決方法です。 解 […]

    Posted on by press

    最新情報をお届けします!

    メーリングリストに登録するとファントムの最新情報をお届けします

    お客様のメールアドレスを共有することはありません