pythonで動画に対して何らかの処理をしたいときに見るページです.
非常にざっくりと動画処理系のフローをまとめると次のようになります.
以下に,フローの部分だけを記載したコードを用意します.
処理の部分を適当な形に記述することで,動画の処理や加工ができます.
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()
#動画を保存したいんだけど
映像のエンコードがうまくいっていないらしく,本記事の記述当時は成功していません.
うまくいったら追記します