cam.release()之后网络摄像头指示灯仍然亮起

时间:2018-08-22 20:28:33

标签: python python-3.x opencv3.0

我正在使用opencv和Python3读取网络摄像头。

即使我释放了网络摄像头,网络摄像头指示灯仍会亮起。

我在做:

webcam = cv2.VideoCapture(0)
webcam.release()

在释放命令之后,如果我尝试读取凸轮,则会得到:(False, None),但网络摄像头本身仍为<VideoCapture 0EE62DC0>。我不知道这是否是问题,但是直到我杀死所有python脚本或python终端之前,指示灯一直亮着。

我在Windows 10,python 3.5,opencv 4.0.1上。我在做错什么吗?

3 个答案:

答案 0 :(得分:5)

我有完全一样的问题。使用python3.6和opencv 3.4.2(也在Windows10上),将opencv-python版本重新安装到3.4.0.14。那对我有用。

似乎opencv 3.4.2有问题。

您可以通过运行以下命令来安装该特定版本:

pip install opencv-python==3.4.0.14

答案 1 :(得分:1)

与此处相同,在Windows10上使用c ++和OpenCV 3.4.3。

问题似乎与MSMF后端有关,无法创建具有值的环境变量:

OPENCV_VIDEOIO_PRIORITY_MSMF = 0

解决问题。来源:here

答案 2 :(得分:0)

我遇到了同样的问题。

当我从以下位置更改while循环条件时,我的问题已解决:

while(cap.isOpened()): 

    #Your code

具有:

while(True):

  ret, img = cap.read()

  #Your code

在更改循环之前,我还在cmd提示符下应用了以下命令:

setx OPENCV_VIDEOIO_PRIORITY_MSMF 0

应用上述命令后,请重新启动PC!

也希望这项工作对您有用。

干杯!