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

首先说一下环境,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’)。事实证明这种方式不可行。好在国外也有人遇到了这种问题,并给出了可行的解决方法。解决方法是这样的(亲测可行):

  1. 首先将 C:\opencv\sources\3rdparty\ffmpeg 添加到系统目录
  2. 然后将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
  3. 系统变量改变后在cmd中输入“set path = c”刷新系统变量使其生效,然后重新打开工程就可以了。

英文解释见这里

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值