关于cv2.VideoCapture
已经存在很多问题,但它对我没有帮助。
我正在使用OpenCV 2.4.10和python 2.7.9,我试图从内置网络摄像头(东芝,Windows 7)捕获视频。我正在使用此代码
import numpy as np
import cv2
cap = cv2.VideoCapture(1)
print cap.isOpened()
print cap.get(3)
print cap.get(4)
while(True):
ret,frame=cap.read()
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
问题是,当我第一次运行此代码时,它会抛出错误:error: (-215) size.width>0 && size.height>0 in function cv::imshow
这种情况一次又一次地发生,有时它的工作正常,但有时会失败并给出错误。对此有何解决方案?
我将opencv_ffmpeg2410.dll
文件从C:\Applications\opencv\build\x86\vc10\bin
复制到python路径C:\Python27
(OpenCV 2.4 VideoCapture not working on Windows)
我试过cv2.VideoCapture(0),但在这种情况下,网络摄像头甚至没有启动(网络摄像头灯没有闪烁)
答案 0 :(得分:4)
由于您没有检查ret
返回值的值,cap.read()
可能会给您一个错误的框架。
替换为
之类的内容while True:
ret, frame = cap.read()
if ret:
cv2.imshow('window', frame)
# ...