はじめに
どーも、可視化研究室でデータサイエンスを学んでいるゆうき(@engieerblog_Yu)です。
今回は研究の方で画像を繋げて動画にする機会があったので、ログを残しておきます。
今回は以下の記事を参考にさせていただきました。
【Python】glob.globで読み込んだファイルの順番が名前順じゃないときの対応(Sortedを使って並べ替え)
pip installでModuleNotFoundError: No module named ‘skbuild’が出た時
ライブラリのインポート
pip3 install opencv-python
No module named ‘skbuild’となった方は、pipをアップグレードすることでうまくいくと思います。
pip3 install -U pip
画像をmp4に変換するコード
ディレクトリは以下です。

images:繋げたい順に画像を保存したフォルダ
mp4.py:画像をmp4に変換するコード
project.mp4:出力動画
コードは以下になります。
import glob
import cv2
import re
def atoi(text):
return int(text) if text.isdigit() else text
def natural_keys(text):
return [ atoi(c) for c in re.split(r'(\d+)', text) ]
img_array = []
for filename in sorted(glob.glob("images/*.png"), key=natural_keys):
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()
参考記事ではMP4Vとなっていましたが、私の場合は小文字にするとうまくいきました。
out = cv2.VideoWriter(name, cv2.VideoWriter_fourcc(*'MP4V'), 5.0, size)
jpgの方は、以下でうまくいくと思います。
for filename in sorted(glob.glob("images/*.jpg")):
終わりに
パラパラ漫画のように動画を作るのがすごく楽しかったです。
皆さんのお役に立てば何よりです。

ゆうき
最後まで読んでいただきありがとうございました。
他にも画像処理系の記事を出しているので合わせてどうぞ。
コメント