import cv
# create a window
winname = "myWindow"
win = cv.NamedWindow(winname, cv.CV_WINDOW_AUTOSIZE)
# load video file
invideo = cv.CaptureFromFile("video.avi")
# interval between frame in ms.
fps = cv.GetCaptureProperty(invid, cv.CV_CAP_PROP_FPS)
interval = int(1000.0 / fps)
# play video
while (True):
im = cv.QueryFrame(invideo)
cv.ShowImage(winname, im)
if cv.WaitKey(interval) == 27: # ASCII 27 is the ESC key
break
del invideo
cv.DestroyWindow(winname)
上記は、opencv libraray を使用してビデオ ファイルを再生する単純な Python コードです。
私が理解していない唯一の部分はim = cv.QueryFrame(invideo)
opencv apiによると、「QueryFrame
カメラまたはビデオ ファイルからフレームを取得し、解凍して返します。」
私の理解では、iplimage
単一のフレームの形式で画像を返すだけですが、どのフレームが返されるかをどのように知るのでしょうか? 必要なパラメーターQueryFrame
はビデオ キャプチャだけですが、取得する必要があるビデオ フレームのフレーム量を示すインデックスはありません。ビデオを途中から再生する必要がある場合はどうすればよいですか?