cam.release() 后网络摄像头灯仍然亮着

Webcam light still on after cam.release()

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

即使我释放了网络摄像头,网络摄像头灯仍然亮着。

我在做:

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

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

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

我遇到了完全相同的问题。使用 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

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

问题似乎与 MSMF 后端有关,禁止创建具有以下值的环境变量:

OPENCV_VIDEOIO_PRIORITY_MSMF=0

解决问题。资料来源:here

我遇到了同样的问题。

当我更改 while 循环条件时,我的问题得到解决:

while(cap.isOpened()): 

    #Your code

与:

while(True):

  ret, img = cap.read()

  #Your code

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

setx OPENCV_VIDEOIO_PRIORITY_MSMF 0

应用上述命令后请重启电脑!

希望这对你也有用。

干杯!!