2015-12-27 2 views
0

Я бег следующего кода:cv2.VideoCapture на питоне

import numpy as np 
import cv2 
import os 

count = 0 

cap = cv2.VideoCapture("/home/simon/PROJECT/real_data/00000020.mp4") 

while not cap.isOpened(): 
    cap = cv2.VideoCapture("./00000020.mp4") 
    cv2.waitKey(1000) 
    print "Wait for the header" 

pos_frame = cap.get(cv2.cv.CV_CAP_PROP_POS_FRAMES) 
while True: 
    flag, frame = cap.read() 
    if flag: 
     # The frame is ready and already captured 
     cv2.imshow('video', frame) 
     pos_frame = cap.get(cv2.cv.CV_CAP_PROP_POS_FRAMES) 
     print str(pos_frame)+" frames" 
    else: 
     # The next frame is not ready, so we try to read it again 
     cap.set(cv2.cv.CV_CAP_PROP_POS_FRAMES, pos_frame-1) 
     print "frame is not ready" 
     # It is better to wait for a while for the next frame to be ready 
     cv2.waitKey(1000) 

    if cv2.waitKey(10) & 0xFF == 27: 
     break 
    if cap.get(cv2.cv.CV_CAP_PROP_POS_FRAMES) ==  cap.get(cv2.cv.CV_CAP_PROP_FRAME_COUNT): 
    # If the number of captured frames is equal to the total number of frames, 
    # we stop 
    break 


if ret == True: 
    frame = cv2.VideoCapture.grab() 
    frame = 'frame%d' % count 

    cv2.imwrite('frame%d.png', frame) 

    count += 1 
else: 
    print 'stopped at' + count 
    break 

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

Я попытался запустить его как более простой фрагмент кода, где он не имеет всех этих проверок, и снова это не вызывает никаких ошибок.

Я пытаюсь запустить этот код, чтобы открыть видео, а затем сохранить кадры в виде png-файлов по всему видео.

Есть ли какие-либо особые проблемы с кодом? Или же кто-нибудь знает кусок кода, который будет делать то, что я хочу более эффективно, так как я тралил через Google поиск и стек переполнению много в последнее время и не нашел ничего

Спасибо заранее Panda

ответ

0

Вам нужно включить несколько DLL в свой каталог python, чтобы воспроизводить видео. Пожалуйста, смотрите это подробно:

https://li8bot.wordpress.com/2014/07/09/opencvpython-part-1-working-with-videos/

+0

Я уже установлен FFmpeg, и я проверил для тех, кто, прежде чем я писал здесь :) Спасибо за совет, хотя. Знаете ли вы, требуется ли столько же времени для обработки, сколько длина видео? – pandasarebest

+0

Насколько я знаю, он должен сразу начать чтение. Проблема с заголовком, насколько я знаю, состоит в том, что он не может декодировать видео, обычно потому, что opencv не находит библиотеки DLL. –

Смежные вопросы