Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python opencv-摄影机0不工作_Python_Opencv_Dependencies_Webcam - Fatal编程技术网

Python opencv-摄影机0不工作

Python opencv-摄影机0不工作,python,opencv,dependencies,webcam,Python,Opencv,Dependencies,Webcam,我正在hp touchsmart 600上运行windows 7 64位(32位python)。不久前,我卸载了opencv,然后重新安装了opencv 2.4.3。在卸载和重新安装之间,我卸载了一些我认为没有被使用的程序。现在,在opencv能够正确访问我的网络摄像头之前,opencv只会显示一个黑屏 但是,如果我使用摄像头2(即cam=create_capture(2,…),opencv可以正确使用我的网络摄像头。为什么照相机0突然停止工作?它是否以某种方式变成了摄像头2,或者我是否卸载了o

我正在hp touchsmart 600上运行windows 7 64位(32位python)。不久前,我卸载了opencv,然后重新安装了opencv 2.4.3。在卸载和重新安装之间,我卸载了一些我认为没有被使用的程序。现在,在opencv能够正确访问我的网络摄像头之前,opencv只会显示一个黑屏


但是,如果我使用摄像头2(即cam=create_capture(2,…),opencv可以正确使用我的网络摄像头。为什么照相机0突然停止工作?它是否以某种方式变成了摄像头2,或者我是否卸载了opencv访问我的网络摄像头所需的依赖项?此外,使用摄像头1和3也可以,即使我只有一个网络摄像头。

摄像头0指向默认的摄像头驱动程序,摄像头1指向辅助驱动程序,摄像头2指向三级驱动程序,依此类推

这意味着,即使只有一个摄像头硬件,也可以有多个驱动程序访问它

假设您的主cam驱动程序(可能由HP提供)在卸载过程中已损坏。这意味着当您调用camera 0时,您正在实例化HP驱动程序(现在已损坏),这会给您一个黑屏

但是,由于您的相机硬件不受影响,辅助和三级相机驱动程序也不受影响,因此当您访问camera 1时,辅助相机驱动程序会正确地流式传输实时提要


如果您没有三级摄像头驱动程序,摄像头2将指向辅助驱动程序。因此,如果没有与摄像机2关联的驱动程序,摄像机2将调用摄像机1对应的驱动程序

如果您有一个摄像机,只需传递值-1(不是零)。关于摄像头0停止工作的原因,我只能猜测,在Windows下,无法保证第一个摄像头被分配给0。但我建议使用更新的OpenCV API。在这个新版本中,您将使用
VideoCapture
而不是
CaptureFromCam
,现在您指定0(就像旧API中的-1一样)。您能解释一下新的opencv API是什么意思吗?opencv 2.4.3不是最新版本吗?opencv 2.4.3是最新版本。在它内部,python绑定有两个API,旧的
cv
和新的
cv2
。选中此项: