未连接网络摄像头时OpenCV返回错误消息

时间:2017-11-08 21:12:41

标签: python opencv

我在Windows 10 PC上使用OpenCV 3.3和Python 2.7。在我的一个项目中,我正在连接外部网络摄像头以进行一些跟踪。只要连接了网络摄像头,一切都很顺利。如果在程序运行之前/程序期间断开网络摄像头,程序将崩溃。当我尝试一个虚拟程序来检查出错时,我注意到程序在我调用cv2.VideoCapture(0)本身的行中崩溃了。

代码段:

cap = cv2.VideoCapture(0) - 此行在主程序中,如果未连接摄像头,程序此时崩溃

- 以下行位于函数内部,主程序根据其他输入调用

  

r,a = cap.read()

     

而不是r:

     
    

打印'重新连接相机'

         

r,a = cap.read()

  
     

打印'一切都好!'

我将while循环放在那里以防止在cap = cv2.VideoCapture(0)之后但在函数内的cap.read()之前断开相机的问题。这也不起作用,因为即使在相机断开连接后,第二次迭代中'r'值也变为真。我在下面放了一个图表来表示“r”与相机连接的行为。

a -> Camera is disconnected and 'r' goes to false;b -> Camera is still disconnected but 'r' is true now;c-> Camera is re-connected and 'r' goes to false;d -> Camera is connected, 'r' goes back to true but

我可能做错了!我该如何解决?!先谢谢你们!

1 个答案:

答案 0 :(得分:0)

首先你需要至少插入一个摄像头,没有任何摄像头,程序必须失败。 cv2.VideoCapture(0)正在寻找第一台摄像机(编号为cero),所以如果你把相机插上,就会返回错误。 如何修复:列出摄像机,将那个不是网络摄像头的设置为默认值