我设法使用conda和Python 3.5安装了OpenCV 3.1,一切似乎都可以正常工作。
但是,当尝试通过ffmpeg导入视频文件时,我得到了:
1
2
3
4
5
6
7import numpy as np
import cv2
cap = cv2.VideoCapture('data\vtest.avi')
cap.read()
#(False, None)
使用静止图像或笔记本电脑网络摄像头时,它可以工作(请注意,VideCapture返回None)。 显然,ffmpeg有问题。
我尝试了几件事:
在我的环境/ PATH中安装ffmpeg二进制文件(单独工作正常)
但显然OpenCV无法调用它,因为它会查找特定的dll)。
移动到bin文件夹(也在我的路径中),
来自编译版本的dll
sourceforge:
opencv_ffmpeg310_64.dll
opencv_ffmpeg310.dll
这两个选项均无效。 有任何想法吗?
最新的conda-forge版本现在包含FFMPEG。 如果您的计算机中装有miniconda或Anaconda,则可以通过在cmd或终端中运行来安装所有组件:
1conda install -c conda-forge opencv ffmpeg
另外,也可以使用menpo的频道食谱:
1conda install -c menpo opencv3 ffmpeg
你好! 安装两个软件包实际上并不能解决问题。 cap.isOpened()的结果仍然是False
如果没有很好地解决依赖关系,我会明确添加ffmpeg,请立即尝试。
我使用cx_freeze创建可执行文件时为什么这不起作用?
OpenCV的conda版本未使用ffmpeg进行编译。 我也一直在为这个问题苦苦挣扎。 pip版本也不使用ffmpeg进行编译。 我最好的建议是自己用ffmpeg编译OpenCV,这是我发现的唯一轻松而稳定的方法。