LoginSignup
11
17

More than 5 years have passed since last update.

[基礎] python + openCV で動画を扱う

Last updated at Posted at 2018-10-30

pythonで動画に対して何らかの処理をしたいときに見るページです.

非常にざっくりと動画処理系のフローをまとめると次のようになります.

zu.png

以下に,フローの部分だけを記載したコードを用意します.
処理の部分を適当な形に記述することで,動画の処理や加工ができます.

TreatVideo.py
import numpy as np
import cv2

#動画を取得
#端末に接続されたデバイスでストリームしたければ0などのデバイス割り当て番号
#既にある動画を使いたければ動画のパスを引数に与える
video = cv2.VideoCapture("your/video.avi")

# VideoCaptureに失敗したら無視してプログラムを終了
while.video.isOpened():

    # フレームの読み込み
    ret, frame = video.read()

    # フレームを読めなかった(動画を最後まで読み切った)ら終了
    if not ret:
        break

    # 画面サイズを取得
    # フローには書いてないけど大抵使うので書いておきます
    (height, width) = frame.shape[:2]

    # ---------------
    # やりたい処理はこのあたりで記述する
    # ---------------

    # 現在読んでいるフレームを描画
    # 処理結果見えなくていいから軽量化したい場合はここをコメントアウト
    cv2.imshow("frame", frame)

    # qを押せば処理を中止できるようにしておく
    key = cv2.waitKey(1) & 0xFF
    if key == ord("q"): break

# メモリ開放
video.release()
cv2.destroyAllWindows()

動画を保存したいんだけど

映像のエンコードがうまくいっていないらしく,本記事の記述当時は成功していません.
うまくいったら追記します

11
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
17