Python : 動画の読み込み
Pythonの動画の読み込み方法です。
動画の保存方法については、下記のとおりです。
今回は、上で制作した、movie.mp4という動画ファイルを読み込む方法です。
今回もOpencvを使うので、cv2を読み込みます。
import cv2
動画のアドレスを指定します。
cap = cv2.VideoCapture('movie.mp4')
動画を読み込む際はどのフレームから読み込むか?というのが指定できるので、
この指定をします。0だと最初からです。
もし最初からしか見ない場合は下記の2行は不要です。
nini_start = 0
cap.set(cv2.CAP_PROP_POS_FRAMES,nini_start)
後は、while文にてループを組み
while True:
動画を読み込みます、frame1という名前にします。
読み込みかたは、カメラと一緒で指定した画像データ.read()です。
ret,frame1 = cap.read()
この辺のやり方は結構好みの部分もありますが、
if文で画像が存在するかどうかを見るやり方です。
if ret:
30msec待つ;これを入れないと早すぎて見れないです。
この待つ文は、if文でqを押したら終了にするため、
画像を表示する前に入れるほうが、qを押したときの反応が良いです。
cv2.waitKey(30)
画像の表示
cv2.imshow('frame1',frame1)
上で説明した「q」を押したら終了これは
基本画像を表示したすぐ後に入れておくと反応がよいです。
key = cv2.waitKey(1)
if key & 0x00FF == ord('q'):
break
動画が終了したら、whileループを抜けるようにしておきます。
この方法でなくてもよいですが、ループを抜けられるようにしておかないと、
だんまりになってしまいます。
else:
break
最後に画像をすべて閉じます。
cv2.destroyAllWindows()
詳細のプログラムは下記になります。
import cv2
#動画のアドレスを指定
cap = cv2.VideoCapture('movie.mp4')
#どのフレームかた始めるか指定;0は最初から
nini_start = 0
cap.set(cv2.CAP_PROP_POS_FRAMES,nini_start)
#while文にてカメラがつながっている限りは動画撮影
while True:
#動画を読み込む
ret,frame1 = cap.read()
#動画が存在するか否か
if ret:
#30msec待つ;これを入れないと早すぎて見れないです。
cv2.waitKey(30)
#画像の呼び出し
cv2.imshow('frame1',frame1)
#qを押したら終了
key = cv2.waitKey(1)
if key & 0x00FF == ord('q'):
break
#動画が終了したら、whileループを抜ける
else:
break
#画像をすべて閉じる
cv2.destroyAllWindows()
今までにpythonについて書いた記事はここにリンクを貼ってあります。
興味があればぜひご覧ください。