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

标签 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()

最佳答案

我遇到过类似的问题,解决方法如下:

为了让您的 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 中您可能会通过复制它们而遇到很多问题,我遇到过这个问题。特别是 (_) 下划线。
  3. 此解决方案适用于 OpenCV 3.0.0 和 python 2.7.11 以及最新的 windows 10,我没有在其他环境上测试过。

关于python - 无法在 opencv (Python 2.7) 中播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35604527/

相关文章:

python - 在 OIL 或 Imagemagick 中将彩色叠加层应用于图像

Python 电子邮件 CGI 脚本发送重复的电子邮件

python - 如何在 Django 管理 ListView 中添加图像?

opencv - 在 OpenCv 中计算缩放 Mat 图像上的点坐标

python - OpenCV:FFMPEG:标签 0x00000021/'!???' 未找到(格式 'mp4/MP4 (MPEG-4 Part 14)')'

opencv - 如何检查 GitHub 存储库是否使用持续集成以及哪个 CI 平台(例如 Jenkins、Travis CI)?

python - pyinstaller exe不会关闭

python - 在 numpy 结构化数组中存储单元信息的最佳方法?

python - 如何在不导入的情况下将列表列表转换为单个列表

javascript - 根据值更改谷歌热图点颜色