2014-11-06 113 views
-1

這是我第一次問這個問題,這是一個相當基本的問題。我試圖在Windows上使用Anaconda播放保存的視頻,但由於某種原因沒有播放。目的是播放當前文件,然後實時進行視覺跟蹤。這裏是我的代碼:從anaconda的文件播放視頻

import numpy as np 
import cv2 

cap = cv2.VideoCapture('Animal3.h264') 

while(cap.isOpened()): 

    print 'opened' 
    ret, frame = cap.read() 
    gray = cv2.cvtColor(frame, cv2.Color_BGR2GRAY) 

    cv2.imshow('frame', gray) 
    if cv2.waitKey(25) & 0xFF == ord('q'): 
     print 'break' 
     break 
cap.release() 

cv2.destroyAllWindows() 

print 'end' 

而當我運行它時什麼也沒有發生。它只是告訴我我用完了什麼文件。我究竟做錯了什麼?

回答

1

主要問題是:你應該總是測試函數的返回值或這些調用返回的參數的有效性。

這是最常見的原因VideoCapture()失敗

不管怎麼說,這是你應該做的事情,以確保該問題是在VideoCapture()

cap = cv2.VideoCapture('Animal3.h264') 
if not cap: 
    print "!!! Failed VideoCapture: unable to open file!" 
    sys.exit(1) 

我也建議的代碼更新到:

key = cv2.waitKey(25) 
if key == ord('q'): 
    print 'Key q was pressed!' 
    break 
+0

其實我之前做過這樣做,我只是沒有在代碼中顯示它。該文件打開,它傳遞給while循環,但它不顯示我參考的框架。我很抱歉,如果這聽起來令人難以置信的少年。我是一個嘗試自己學習的初學者,這實際上是我的知識水平。不是我想要簡單的出路。 – 2014-11-12 20:40:30

+0

@vis_Research執行'waitKey()'條件的方式可能存在問題。我更新了我的答案,以顯示更清晰的方式。 – karlphillip 2014-11-12 21:00:02