はじめに
どーも、可視化研究室でデータサイエンスを学んでいるゆうき(@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に変換するコード
ディレクトリは以下です。
![](https://prog-you.com/syohyou/wp-content/uploads/2022/12/44426bd83a6fa54ec973e8e3c297cbb2.png)
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")):
終わりに
パラパラ漫画のように動画を作るのがすごく楽しかったです。
皆さんのお役に立てば何よりです。
![ゆうき](https://prog-you.com/syohyou/wp-content/uploads/2022/04/d160a53f71104dc4e5ed3c300ba3ba79-1.png)
ゆうき
最後まで読んでいただきありがとうございました。
他にも画像処理系の記事を出しているので合わせてどうぞ。
コメント