我正在使用opencv和Python3读取网络摄像头。
即使我释放了网络摄像头,网络摄像头指示灯仍会亮起。
我在做:
webcam = cv2.VideoCapture(0)
webcam.release()
在释放命令之后,如果我尝试读取凸轮,则会得到:(False, None)
,但网络摄像头本身仍为<VideoCapture 0EE62DC0>
。我不知道这是否是问题,但是直到我杀死所有python脚本或python终端之前,指示灯一直亮着。
我在Windows 10,python 3.5,opencv 4.0.1上。我在做错什么吗?
答案 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!
也希望这项工作对您有用。
干杯!