2014-01-10 60 views
2

所以我試圖在OpenCV中開始使用圖像檢測。我使用Python進行編程。OpenCV的視頻捕獲不會返回圖像

我從openCV2的臉部檢測示例開始。但是,即使打開相機設備,也不會返回圖像。

違規代碼:

cam = cv2.VideoCapture(0) 
print cam.isOpened() 
while True: 
    ret, img = cam.read() 
    print img 
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 
    gray = cv2.equalizeHist(gray) 

使用時,打印語句會說,我的相機被打開。但是,當調用cam.read()時,它將返回False,NoneType。

所以顯然它不能夠將不存在的圖像轉換爲灰度。有沒有人有任何關於如何做到這一點的指針?

我正在使用我的嵌入式攝像頭,因此攝像頭的「0」。

+2

一些蹩腳的視頻驅動程序返回無效的第一幀。檢查ret並繼續,如果它是假的 – berak

+0

@berak - 這幫助我解決了我的問題!謝謝您的回答! – leoshnoire

+0

@leoshnoire,啊,不錯;) – berak

回答

0

我面臨同樣的問題。

有時視頻/網絡攝像頭驅動程序是一個問題,它會返回無效的前幾幀。 檢查處理錯誤情況的返回值。 也重新啓動你的內核,它應該工作。

而且可能由於之前的某些錯誤情況,您的cap.release()未被調用。