我在使用 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
%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 来说看起来像这样,其余的都是一样的:
记住!重新启动您的控制台或 IDE,以便它获得更新/新鲜的变量。
注意:
- 这样它应该会自动找到
opencv_world300.lib
并记住在我们移动它时将其从 Python 文件夹中删除只是为了澄清这是否是问题所在。 - 您需要手动输入变量并且不能复制和粘贴,有时在 Windows 中您可能会通过复制它们而遇到很多问题,我遇到过这个问题。特别是 (_) 下划线。
- 此解决方案适用于 OpenCV 3.0.0 和 python 2.7.11 以及最新的 windows 10,我没有在其他环境上测试过。
关于python - 无法在 opencv (Python 2.7) 中播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35604527/