QueryFrame不在OpenCV中推进框架

时间:2012-03-09 19:33:26

标签: python video opencv

代码

import cv    
capture = cv.CaptureFromFile("a.avi")
while True:
    frame = cv.QueryFrame(capture)
    cv.ShowImage("a',frame)

重复显示视频中相同的初始帧(QueryFrame不会推进视频并抓取下一帧)。如果从网络摄像头捕获视频,它可以正常工作。

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

我一遍又一遍地看到同样的错误,所以这可能是我最后一次解决它们。希望将来人们会开始使用搜索框并深入挖掘。

显示相框后调用cv.WaitKey() 。如果在显示帧之间没有延迟,则可能发生一些问题。我相信这个问题。

代码防御性:如果您正在调用可能失败的函数/方法believe in Murphy,并添加相应的检查以验证它不会:

import cv    
capture = cv.CaptureFromFile("a.avi")
if not capture :
    print "Error loading video file"
    # Should exit the application

while True:
    frame = cv.QueryFrame(capture)
    if not frame:
        print "Could not retrieve frame"

    cv.ShowImage("a", frame)
    k = cv.WaitKey(10)
    if k == 27:         
        break    # ESC key was pressed