nyanpyou Note

主な目的は調べたり作ったりしたプログラミング備忘録(予定)

動画ファイルを静止画に分解する

OpenCVを使うことで、動画ファイルを簡単に静止画に分解することが出来る。
動画を1フレームずつjpg画像として保存し、連番で出力する。

#Python3.7.4
#opencv3.4.2
import cv2

#動画ファイルを開く
cap = cv2.VideoCapture('output.avi')
i = 1

while(cap.isOpened()):
    #1フレーム読み込み
    ret, frame = cap.read()
    if ret==True:

        # フレームをjpgで書き出す
        cv2.imwrite('%s.jpg' % i, frame)
        cv2.imshow('frame',frame)
        #qキーを押したら途中で終了
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
        i += 1
    else:
        break

#終わったら動画を閉じる
cap.release()
cv2.destroyAllWindows()

例えば、毎フレームではなく、10フレーム毎の保存にすることも容易にできる。単純だが非常に便利。