【问题标题】:OpenCV VideoCapture Not OpeningOpenCV VideoCapture 未打开
【发布时间】:2014-09-02 12:20:23
【问题描述】:

我正在尝试在运行 Ubuntu 14.04 的亚马逊服务器上使用 OpenCV 的 cv2 python 绑定,但我似乎无法让 VideoCapture 正常工作。

我尝试打开默认捕获如下:

import cv2
cap = cv2.VideoCapture(0)
cap.isOpened() #Returns false

我在本地机器上对此进行了测试,结果符合预期,因此我的开放式 CV 配置有问题。我尝试了很多方法:

  • 使用我确认指向 .mp4 文件的实际文件路径
  • 在第二行使用 -1 和 1 代替 0
  • 安装 ffmpeg(来自 ppa,因为它在 Ubuntu 14.04 上默认不可用)并重建 OpenCV
  • 完全删除我的 OpenCV 目录并使用脚本 here 重建
  • 验证并重新安装各种其他库,包括 x264、gstreamer 和 gtk

在这一点上我有点没有想法。有什么可能出错的想法吗?

编辑:OpenCV 版本是 2.4.9。

【问题讨论】:

  • 据我所知VideoCapture 用于从摄像头捕获视频,但亚马逊服务器没有摄像头。
  • VideoCapture 也用于从文件中捕获视频,这是我正在尝试做的。
  • 正如我在文档中看到的 VideoCapture(0) 表示 use default camera。可能需要更多代码才能做到这一点。
  • 是的,在阅读了您的评论后,我认为,也许它只能在本地工作,因为我的本地机器上有一个摄像头。但是,将VideoCapture(0)VideoCapture("/path/to/video/video.mp4") 切换会返回相同的错误。
  • 谢谢 - 它实际上刚刚开始工作。我不完全确定为什么,但我最近做的是通过此处的说明重新安装 ffmpeg:trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

标签: python opencv ubuntu-14.04


【解决方案1】:

我也遇到了类似的问题。可能的解决方案:

  1. 检查你是否给出了正确的路径。

  2. 如果您使用 pip 安装了 OpenCV,它将无法正常工作。您可以删除 OpenCV 并查看 official documentation 重新安装它。

  3. 通过pip安装的方式,
    pip install opencv-python只安装主模块
    pip install opencv-contrib-python安装主模块和contrib模块,所以使用这个命令。

【讨论】:

  • pip install opencv-contrib-python 解决了我的问题。谢谢!
【解决方案2】:

我遇到了同样的问题并成功解决。 您应该使用 WITH_FFMPEG 标志构建 OpenCV:

cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=/usr/local -DWITH_GTK=ON -DWITH_FFMPEG=1 

您应该在 FFMPEG 部分的任何地方都看到“YES”:

Video I/O:
--     DC1394 1.x:                  NO
--     DC1394 2.x:                  YES (ver 2.2.5)
--     FFMPEG:                      YES
--       avcodec:                   YES (ver 57.107.100)
--       avformat:                  YES (ver 57.83.100)
--       avutil:                    YES (ver 55.78.100)
--       swscale:                   YES (ver 4.8.100)
--       avresample:                YES (ver 3.7.0)
--     GStreamer:                   NO
--     OpenNI:                      NO
--     OpenNI PrimeSensor Modules:  NO
--     PvAPI:                       NO
--     GigEVisionSDK:               NO
--     UniCap:                      NO
--     UniCap ucil:                 NO
--     V4L/V4L2:                    NO/YES
--     XIMEA:                       NO
--     Xine:                        NO

如果您看不到它,则需要通过 apt 安装下一个软件包(如果您使用的是 Debian 或 Ubuntu Linux):

sudo apt-get install libav-tools libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libx264-dev

【讨论】:

    猜你喜欢
    • 2017-11-08
    • 2012-09-08
    • 1970-01-01
    • 2021-03-22
    • 2018-07-26
    • 2021-09-10
    • 2013-01-22
    • 2016-02-01
    • 2012-07-13
    相关资源
    最近更新 更多