最後のprint "frame number ",i を使うことで今読み込んでいるフレームを見ることが出来るようにしているのですが、フレーム取得が急に遅くなって結果的に'Failed to grab frame.'と表示され、途中までしかフレームが読み込めません。
プログラムではなく動画に問題があるのかと思うんですが何か知っている方いらっしゃいますか?
python
1import cv2 2import matplotlib.pyplot as plt 3from numpy import * 4import pandas as pd 5from scipy import signal 6 7video_path = "2crop.mkv" 8cap = cv2.VideoCapture(video_path) 9 10count = cap.get(cv2.CAP_PROP_FRAME_COUNT) 11fps = cap.get(cv2.CAP_PROP_FPS) 12 13numS=raw_input("start frame: ") 14numS=int(numS) 15 16numE=count 17print("total number:%d"%numE) 18 19x1min=raw_input("点滅1左上のx座標:") 20y1min=raw_input("点滅1左上のy座標:") 21x1max=raw_input("点滅1右下のx座標:") 22y1max=raw_input("点滅1右下のy座標:") 23 24X1min=int(x1min) 25Y1min=int(y1min) 26X1max=int(x1max) 27Y1max=int(y1max) 28 29xnoisemin=raw_input("左上ノイズx座標:") 30ynoisemin=raw_input("左上ノイズy座標:") 31xnoisemax=raw_input("右下ノイズx座標:") 32ynoisemax=raw_input("右下ノイズy座標:") 33 34Xnoisemin=int(xnoisemin) 35Ynoisemin=int(ynoisemin) 36Xnoisemax=int(xnoisemax) 37Ynoisemax=int(ynoisemax) 38 39frame_no = arange(numS,numE) 40intensity1 = [] 41 42for i in frame_no: 43 # フレーム frame_no を取得する。 44 cap.set(cv2.CAP_PROP_POS_FRAMES, i) 45 ret, frame = cap.read() 46 if not ret: 47 print('Failed to grab frame.') 48 break 49 intensity1.append(frame[Y1min:Y1max+1, X1min:X1max+1].mean()) 50 print "frame number ",i
あなたの回答
tips
プレビュー