我在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”与相机连接的行为。
我可能做错了!我该如何解决?!先谢谢你们!
答案 0 :(得分:0)
首先你需要至少插入一个摄像头,没有任何摄像头,程序必须失败。 cv2.VideoCapture(0)正在寻找第一台摄像机(编号为cero),所以如果你把相机插上,就会返回错误。 如何修复:列出摄像机,将那个不是网络摄像头的设置为默认值