【问题标题】:Not able to play video in opencv (Python 2.7)无法在 opencv 中播放视频(Python 2.7)
【发布时间】:2016-02-24 14:13:43
【问题描述】:

我在使用 opencv 的 python 中有以下工作代码(它在另一个环境中进行了测试),但由于某种原因,我尝试在我的计算机上使用 Windows 10、Python27 和 OpenCV 3.0.0 播放视频。而且它不播放。

问题:在python 2.7下如何在opencv中播放视频?我做错了什么?

这是我的代码:

import cv2

cap = cv2.VideoCapture("output.avi")
cv2.namedWindow("input")
f = True
while (f):
    f, img = cap.read()
    if f == True:
        cv2.imshow("input", img)
        ch = cv2.waitKey(33)
        if ch == 32:
            break

cap.release()
cv2.destroyAllWindows()

【问题讨论】:

  • 我也遇到了同样的问题,你检查过你的路径变量了吗?
  • 请查看我的回答,希望对您有所帮助

标签: python python-2.7 opencv


【解决方案1】:

我遇到了类似的问题,我已经解决了以下方法:

为了让您的 Python 2.7 使用 OpenCV 库播放视频,您需要拥有正确的 OpenCV 代码。

要确认这是否是 OpenCV 代码问题,首先需要将 opencv_world300.lib TEMPORARY 从 OpenCV 库复制到 Python 文件夹。在我的情况下,OpenCV 安装在(您应该检查 OpenCV 的安装位置)

C:\lib\opencv\build\x86\vc12\lib

如前所述,将其复制到您的 Python 文件夹中,就像我的情况一样 c:\python27(找出您的 Python 文件夹所在的位置)。

然后开始编译你的代码,看看你是否可以播放你的视频。

如果这有帮助并且成功,这意味着您的路径和环境变量设置不正确。因此,需要设置如下路径和环境变量:

进入你的窗口System -> Advance system settings -> Environment Variables(如果你不知道怎么看this)

并在用户变量中添加以下内容,这就是我的变量设置方式。

编辑您的变量名称路径并添加新的变量值:

%OPENCV_HOME%\x86\vc12\bin
%PYTHON_HOME%
%PYTHON_HOME%\Scripts
%PYTHON_HOME%\DLLs

所以它在 Windows 中看起来像这样

%OPENCV_HOME%\x86\vc12\bin;%PYTHON_HOME%;%PYTHON_HOME%\Scripts;%PYTHON_HOME%\DLLs;....etc.

为以下三个组件创建新的变量名和变量值:

PYTHON_HOME=C:\Python27\

OPENCV_HOME=C:\lib\opencv\build

NUMPY_HOME=%PYTHON_HOME%\Lib\site-packages\numpy

所以它在 Windows for Python 中看起来像这样,其余的都是一样的:

记住!重新启动您的控制台或 IDE 以获取更新/新鲜的变量。

注意:

  1. 这样它应该会自动找到 opencv_world300.lib 并记住将其从 Python 文件夹中删除,因为我们移动它只是为了澄清这是否是问题所在。
  2. 您需要手动键入变量,并且不要复制和粘贴,有时在 Windows 中,仅复制它们可能会遇到很多问题,我遇到过这个问题。特别是 (_) 下划线。
  3. 此解决方案适用于 OpenCV 3.0.0 和 python 2.7.11 以及最新的 windows 10,我没有在其他环境下测试过。

【讨论】:

  • 它现在也对我有用。我的路径中缺少 %OPENCV_HOME%\x86\vc12\bin。非常感谢!
猜你喜欢
  • 1970-01-01
  • 2015-04-13
  • 2016-05-16
  • 1970-01-01
  • 2019-04-18
  • 2018-11-14
  • 2018-10-12
  • 2019-06-03
  • 1970-01-01
相关资源
最近更新 更多