BETA

matplotlibが吐き出した画像をOpenCVでアニメーションにする

投稿日:2019-08-06
最終更新:2019-08-06

モチベーション

matplotlibのアニメーションモジュールの使い方を頻繁に忘れるのでもっとかんたんにアニメーションを作りたい.

手順

  1. matplotlib でいつものように画像を保存する
  2. OpenCVで画像を読み込んで動画として吐き出す

コード

import cv2  
import numpy as np  
import matplotlib.pyplot as plt  

# 適当な画像を用意する  
x = np.arange(0,1.1,0.01)  
for dt in [i*0.01 for i in range(1000)]:  
    plt.plot(x+dt, np.sin(2*np.pi*(x+dt)))  
    plt.xlim(0+dt, 1+dt)  
    plt.savefig("fig/{:.2f}.png".format(dt))  
    plt.close()  

# 画像サイズが不明な場合は1枚読み込んでみる  
img = cv2.imread("fig/0.02.png")  
height, width, _ = img.shape  

fourcc = cv2.VideoWriter_fourcc('m','p','4','v')  
fps = 100  
image_size = (width, height)  

out = cv2.VideoWriter("vid.mp4", fourcc, fps, image_size)  

# 画像吐き出したときと同じように読み込んで追加していく  
for dt in [i*0.01 for i in range(1000)]:  
    img = cv2.imread("fig/{:.2f}.png".format(dt))  
    out.write(img)  

# 閉じておわり  
out.release()  

plt.figure(figsize=()) で指定してるならサイズは読み込む必要なし.

で確認

参考

Pythonで連番画像から動画を作成する(Qiita)

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@zennihonの技術ブログ twitter/zen_nihon

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう