我正在使用Windows 10和2.7.12 32位版本的Python和Opencv 3.1.0。下面是出错的代码:
vcap = cv2.VideoCapture("StraightAhead.avi")
if not vcap.isOpened():
print "File Cannot be Opened"
首先,所有这些代码在使用网络摄像头时都有效(所以VideoCapture(0)
)。
我尝试过几件事。首先,它最初是mp4,所以我将其转换为avi。我试过一个文件(.webm)来自一个使用Linux的python和opencv的朋友,但对我来说却不适用。
我查看是否可以将DLL文件从opencv ffmpeg移动到Python但是我没有DLL文件。我检查了很多其他问题,但大多数都为Linux提供了解决方案。
最相关的问题没有任何答案或评论,所以我最终决定在这里提出。我希望有人可以提供帮助。
答案 0 :(得分:-1)
尝试了你的代码,它可以在我的64位Win10机器上运行。 32位Windows所需的文件是“opencv_ffmpeg310.dll”。建议您从OpenCV Download site下载二进制文件,安装它并重试。 ffmpeg DLL位于“C:\ Program Files(x86)\ OpenCV 3.1.0 \ x64 \ vc14 \ bin”中。如果安装程序没有将它们添加到Windows环境中,还需要添加以下路径。
OPENCV_DIR='C:\Program Files (x86)\OpenCV 3.1.0\x64\vc14'
PATH = %PATH%;%OPENCV_DIR%\bin
请注意,vc14由Visual Studio 2015编译,vc12由VS2013编译。
希望得到这个帮助。
答案 1 :(得分:-1)
您可以将二进制文件替换为C:\并再试一次。
如果仍然无法正常工作,请将OpenCV路径更改为故意使用32位版本的ffmpeg DLL。
如果问题仍然存在,请记录Traceback消息。
编辑:刚刚测试了从opencv网站下载的opencv-3.1.0.exe。视频文件播放,使用' Wildlife.wmv'配备32位Win7,可以工作。
看起来EXE压缩了两组文件...... OPENCV_DIR设置为C:\ opencv \ opencv \ build \ x86 \ vc12。并将c:\ opencv \ opencv \ build \ python \ 2.7 \ x86 \ cv2.pyd cv2.pyd复制到python的lib \ site-packages。这就是全部。