我正在尝试将OpenCV2与我的Conda环境一起用于Python 2.7。
我的安装与上面描述的基本相同 this question
我像这样检索了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()
时,它也是假的。由于它没有返回错误,因此很难说出发生了什么。我听说如果没有正确安装(无论这意味着什么),ffmpeg可能会引起一些问题,但我无法判断这是不是在这里发生了什么。
有谁可以告诉我为什么视频没有正常打开?
答案 0 :(得分:1)
错误很可能是由于缺少编解码器的原因。如果缺少编解码器而不是显示实际错误,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应该可以正常工作。
希望这会有所帮助!!