无法在opencv中播放视频(Python 2.7)

时间:2016-02-24 14:13:44

标签: python python-2.7 opencv

我在使用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()

1 个答案:

答案 0 :(得分:2)

我遇到了类似的问题,我修改了以下方法:

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

要确认它是否是OpenCV codex问题,首先需要将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中会是这样的 enter image description here

%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中以Python为例,其余部分采用相同的方式: enter image description here

请记住!重新启动控制台或IDE,以便获得更新/新变量。

注意:

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