QueryFrame не продвигает кадр в OpenCV

Код

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

Несколько раз показывает один и тот же начальный кадр из видео (QueryFrame не продвигает видео и не захватывает следующий кадр). Он отлично работает, если видео снято с веб-камеры.

Есть идеи?

1 ответ

Решение

Я снова и снова вижу одни и те же ошибки, так что, наверное, это последний раз, когда я их исправлю. Надеюсь, что в будущем люди начнут использовать окно поиска и будут копать немного глубже.

Вызовcv.WaitKey() после отображения кадра. Если нет задержки между отображением кадров, могут возникнуть проблемы. Я считаю, что это проблема.

Защитите код: если вы вызываете функцию / метод, который может дать сбой, поверьте в Мерфи и добавьте соответствующую проверку, чтобы убедиться, что это не так:

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
Другие вопросы по тегам