#Authored by Monana
Contact me via [email protected]
比如,类似这段代码无法运行,检查是VideoCapture读取不到视频,该怎么办呢?
import cv2
videoCapture=cv2.VideoCapture('myinput.avi')
fps=videoCapture.get(cv2.CAP_PROP_FPS)
size=(int(videoCapture.get(cv2.CAP_PROP_FRAME_WIDTH)),int(videoCapture.get(cv2.CAP_PROP_FRAME_HEIGHT)))
videoWriter=cv2.VideoWriter('out.avi',cv2.VideoWriter_fourcc('I','4','2','0'),fps,size)
success,frame=videoCapture.read()
while success:
videoWriter.write(frame)
success,frame=videoCapture.read()
#无法运行
1.你的opencv是否安装成功?这点很容易验证,至少不要连opencv都没安装成功就运行别人的代码吧。
2..你是否输入cv2.waitKey(0)这句命令?注意K大写,不输入也是运行不了的。
3.你的working directory即工作路径是否正确?
videoCapture=cv2.VideoCapture('myinput.avi')
这里'myinput.avi'是工作目录下的文件,比如我现在的工作目录
C:\Users\thinkpadx1\Anaconda2\MProject\FaceRecognition
那么我的视频地址就是
C:\Users\thinkpadx1\Anaconda2\MProject\FaceRecognition\myinput.avi
或者你可以直接videoCapture=cv2.VideoCapture('C:\Users\thinkpadx1\Anaconda2\MProject\FaceRecognition\myinput.avi ')
4.以上都没问题,还不可以,我们继续想办法!
首先,在Python输入如下命令获得你opencv的版本,
help(cv2)#检查opencv版本
·我是OpenCV2,解决办法:
这里我是参考StackOverFlow上OpenCV2.4解决办法
http://stackoverflow.com/questions/11699298/opencv-2-4-videocapture-not-working-on-windows
复制 D:\openCV\3rdparty\ffmpeg\下的全部opencv_ffmpeg.dll文件到D:\python27或者D:\anaconda等文件夹下,
复制的时候还要整改名字,比如你的版本是opencv2.410,操作系统64位,那么就改成opencv_ffmpeg2410_64.dll
·我是OpenCV3,解决办法:
复制D:\opencv\opencv\build\x64\vc14\bin下所有前缀包含opencv_ffmpeg.dll的文件到D:\python27或者D:\anaconda等文件夹下。
这个vc14还是vc12等看你的编译器是什么,可以都复制一下试试。
例如,我的版本是Opencv3.10那么我找到文件是
opencv_ffmpeg310_64.dll
opencv_ffmpeg310.dll
opencv_ffmpeg310d.dll
复制到上面说的文件夹下就成功啦~