3
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)
上面是一個簡單的python代碼,使用opencv libraray來播放視頻文件。QueryFrame如何工作?
我不明白,只有一部分是im = cv.QueryFrame(invideo)
根據opencv api,「QueryFrame
從攝像機或視頻文件抓取一幀,將其解壓縮並返回。」
爲了我的理解,它只是返回一個圖像iplimage
格式爲一個單一的幀,但它是如何知道它返回的幀?唯一的參數QueryFrame
需要的是視頻捕獲,但是沒有索引來告訴它我需要檢索哪個幀數量的視頻幀。如果我需要從中間部分開始播放視頻怎麼辦?