您的位置:首页 > 其它

windows 64 位系统下cv2.videocapture失败的问题

2015-09-06 20:12 302 查看
首先说一下环境,windows 8.0 64位系统,OpenCV版本为2.4.7, python 版本为2.7.6,IDE为 64位 Anaconda

函数代码片段为:

videoCapture = cv2.VideoCapture(currentVideoName)

#获得码率及尺寸
fps = videoCapture.get(cv2.cv.CV_CAP_PROP_FPS)
size = (int(videoCapture.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH)),\
int(videoCapture.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT)))

success, frame = videoCapture.read()


遇到的问题:

当cv2.VideoCapture的参数为摄像头的编号(例如cv2.VideoCapture(0))时没有问题,success为true,但是当参数为视频的名字(例如cv2.VideoCapture(r’E:\test.avi’))时就出现问题,不提示出错,但是success值为false。

问题解决方法:

网上查来查去汉语的说明不过是路径有问题,有效的解决方法没有。有人说是opencv不适用“\”,应该把cv2.VideoCapture(r’E:\test.avi’)改为cv2.VideoCapture(r’E:/test.avi’)。事实证明这种方式不可行。好在国外也有人遇到了这种问题,并给出了可行的解决方法。解决方法是这样的(亲测可行):

首先将 C:\opencv\sources\3rdparty\ffmpeg 添加到系统目录

然后将C:\opencv\sources\3rdparty\ffmpeg下的opencv_ffmpeg.dll 和opencv_ffmpeg_64.dll 重命名为opencv_ffmpeg247.dll 和 opencv_ffmpeg247_64.dll 。注意这里的命名方式与opencv版本有关,我的是2.4.7版,就命名为247.dll和247_64.dll,如果你的版本是2.4.10,则命名为 opencv_ffmpeg2410.dll 和 opencv_ffmpeg2410_64.dll

系统变量改变后在cmd中输入“set path = c”刷新系统变量使其生效,然后重新打开工程就可以了。

英文解释见这里
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: