0
系統參數:Windows 8.1,Python 2.7.13,OpenCV 3.2.0.7Python OpenCV給攝像頭上的黑屏捕獲
此代碼工作正常。我試過的.avi和.mp4視頻:
import numpy as np
import cv2
import time
cap = cv2.VideoCapture('tmp.avi')
while(True):
ret, frame = cap.read()
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == 27:
break
cap.release()
cv2.destroyAllWindows()
但是,當我試圖從網絡攝像頭的畫面,我總是看到黑屏雖然RET爲真:
import numpy as np
import cv2
import time
cap = cv2.VideoCapture(0)
while(True):
ret, frame = cap.read()
if not ret: continue
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == 27:
break
cap.release()
cv2.destroyAllWindows()
我試圖用搶和檢索方法,而不是讀法,所以搶返回True,但檢索返回RET =假:
import numpy as np
import cv2
import time
cap = cv2.VideoCapture(0)
while(True):
if not cap.grab(): break
ret, frame = cap.retrieve()
if not ret: continue
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == 27:
break
cap.release()
cv2.destroyAllWindows()
末代碼工作正常視頻。
Windows相機軟件工作正常,所以網絡攝像頭是好的。
我試圖重新安裝OpenCV,它沒有幫助。
什麼問題?爲什麼檢索方法返回False雖然讀取方法返回True?
你確定'cv2.VideoCapture(0)'是你的攝像頭嗎? '可以嘗試'cv2.VideoCapture(1)' –
我確定它是0 – Sergey
您可以嘗試'print {} x {}「。format(cap.get(3),cap.get(4))'寬度和高度來查看它是否有效。 –