python: opencvで動画を再生する

プログラミング
スポンサーリンク




こんにちは、おみです。

pythonで動体検知プログラムを作成してみたいので、試しにopencvで動画を再生したいと思います。

 

スポンサーリンク

下準備

opencvの公式パッケージで配布されている動画をダウンロードし、プログラムのソースコードを保存する場所と同じ場所に保存します。

opencv/opencv
Open Source Computer Vision Library. Contribute to opencv/opencv development by creating an account on GitHub.

 

そのまま再生する

まずはそのままの形式で再生するソースです。こちらのソースに修正を加えて、いろいろな形式で再生を行います。

内容はコメントから雰囲気で読み取ってください。

import cv2
import sys

# 動画のパスを指定
filepath = "vtest.avi"

# 動画を読み込み
cap = cv2.VideoCapture(filepath)

# 動画の読み込みが成功したかを判定
if not cap.isOpened():
    print("動画ファイルの読み込みに失敗しました。")
    sys.exit()

# 動画を再生する
while True:
    # 1フレームずつ取得する
    ret, frame = cap.read()
    if not ret:
        break

    # 結果を出力
    cv2.imshow("Frame", frame)
    key = cv2.waitKey(30)
    if key == 27:
        break

# 終了時処理
cap.release()
cv2.destroyAllWindows()

 

グレースケール(白黒)で再生する

グレースケールで再生するソースです。

画像処理では、計算量を減らすためにグレースケールに変換してから処理を行うことが多いです。

import cv2
import sys

# 動画のパスを指定
filepath = "vtest.avi"

# 動画を読み込み
cap = cv2.VideoCapture(filepath)

# 動画の読み込みが成功したかを判定
if not cap.isOpened():
    print("動画ファイルの読み込みに失敗しました。")
    sys.exit()

# 動画を再生する
while True:
    # 1フレームずつ取得する
    ret, frame = cap.read()
    if not ret:
        break

    # グレースケールに変換する
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # 結果を出力
    cv2.imshow("Frame", gray)
    key = cv2.waitKey(30)
    if key == 27:
        break

# 終了時処理
cap.release()
cv2.destroyAllWindows()

 

参考文献

OpenCVで手っ取り早く動体検知してみた - Qiita
自分が書いた記事の中でだいぶ前に書いたOpenCVやRaspberryPiの記事がここ最近また皆さんに読まれるようになりました。最近のトレンドになっている「ディープラーニング」、「エッジコンピューティング」に関連したキーワードになって...

コメント

  1. […] […]

タイトルとURLをコピーしました