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))'宽度和高度来查看它是否有效。 –