【问题标题】:opencv - camera 0 not workingopencv - 相机 0 不工作
【发布时间】:2016-10-18 14:43:25
【问题描述】:

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

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

【问题讨论】:

  • 如果您只有一个摄像头,只需传递值 -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。检查这个:stackoverflow.com/questions/10417108/…

标签: python opencv dependencies webcam


【解决方案1】:

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

这意味着即使只有一个相机硬件,您也可以拥有多个可以访问它的驱动程序。

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

但是,由于您的摄像头硬件以及辅助和第三摄像头驱动程序不受影响,因此当您访问摄像头 1 时,您的辅助摄像头驱动程序会正确地流式传输实时源。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多