繁体   English   中英

在 Python 中使用 OpenCV 从文件中打开视频

[英]Opening video from file using OpenCV in Python

我正在尝试在 Python 2.7 的 Conda 环境中使用 OpenCV2。

我的安装与此问题中描述的基本相同。

我像这样检索了 OpenCV:

conda install --channel https://conda.anaconda.org/menpo opencv3

我可以导入库 cv2 并打印版本,即 3.1.0。 到现在为止还挺好。 我什至可以加载图像并显示它:

import cv2

img = cv2.imread('desertfloor.jpg')
cv2.imshow('foo',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

这工作得很好。 但是当我去加载同一目录中的视频时:

vid = cv2.VideoCapture('bbb.avi') # Big Buck Bunny
returnval,frame = vid.read()
print returnval

返回值是 False,它告诉我框架没有正确返回。 当我检查vid.isOpened() ,它也是 False 。 由于它不返回错误,因此很难判断发生了什么。 我听说 ffmpeg 如果安装不正确(不管这意味着什么)会导致一些问题,但我不知道这是否是这里发生的事情。

谁能告诉我为什么视频不能正常打开?

该错误很可能是由于缺少编解码器的原因。 VideoCapture 仅显示False ,以防缺少编解码器而不是显示实际错误。

如果使用预构建的二进制文件,则适用于Windows 中的Python 第三方 ffmpeg 不可用,因为它应该从源代码构建。 出于同样的原因,我提供了使用 OpenCV 兼容 API 构建和包装的预构建二进制文件的链接。


https://drive.google.com/open?id=0Bzxd9GL63enNMEpPV0lWRng1VW8


二进制文件是为 opencv-3.0.0 构建的,根据 OpenCV 版本重命名它。

For 32-bit architecture, OpenCV version X.Y.Z -> opencv_ffmpegXYZ.dll
For 64-bit architecture, OpenCV version X.Y.Z -> opencv_ffmpegXYZ_64.dll

复制这个重命名的文件,在c:\\Python27\\或安装 python 的任何地方(如果使用 Python 的任何开源发行版,如 Anaconda,则情况不同)。 在此之后 VideoCapture 应该可以正常工作。

希望这可以帮助 !!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM