幸福的小恬恬

Insanity is doing the same thing over and over again and expecting different results.疯狂就是重复的做一件事,但期待不同的结果。---爱因斯坦

Opecv + Anaconda 读取视频(windows)

前言:之前一直用的是python(x,y),但是发现在使用opencv时容易出现一些pythonw.exe停止工作的问题。后来发现自己的操作系统是64位的,却安装了32位的python(x,y),虽然在此之前已经安装好theano、opencv等封装好的库,但是花了一下午时间没有解决之前出现的问题,治标不治本。因此,果断放弃治疗,选择Opecv + Anaconda 。Anaconda Python 是 Python 科学技术包的合集,功能和 Python(x,y) 类似。它是新起之秀,已更新多次了。包管理使用 conda,GUI基于 PySide,所有的包基本上都是最新版,没有PyQtwxpython等,容量适中,但该有的科学计算包都有:numpy,sicpy,matplotlib,spyder等,是完全免费的企业级的Python发行大规模数据处理、预测分析和科学计算工具。

废话不多说啦~直接上步骤吧

1、下载安装 Anaconda 对应版本。官网链接https://www.continuum.io/downloads

2、网管下载 opencv 对应版本(注:python2.7版本的只能对用opencv2.4版本才可用)。官网链接:http://opencv.org/,安装好后做如下两个操作

第一步:将opencv安装目录D:\Program Files\opencv\build\python\2.7\x64下的cv2.pyd复制到Anaconda安装目录C:\Anaconda2\Lib\site-packages下。

第二步:将D:\Program Files\opencv\sources\3rdparty\ffmpeg下的opencv_ffmpeg_64.dll复制到C:\Anaconda2下,并改名为opencv_ffmpeg2413_64.dll,其中2413指代的是opencv的版本号,我下载的为2.4.13版本。

读取视频代码如下,其中,第二步主要是避免了读取视频失败的问题:

 1 # -*- coding: utf-8 -*-
 2 import cv2
 3 
 4 cap = cv2.VideoCapture('01.avi')
 5 
 6 while (cap.isOpened()):
 7     ret,frame = cap.read()
 8     cv2.imshow('video test',frame)
 9     key = cv2.waitKey(10)
10     if key == 27:
11         break
12     if key == ord(' '):
13         cv2.imwrite('vid_result.jpg',frame)

cv2.imshow('video test',frame)
cv2.error: ..\..\..\..\opencv\modules\highgui\src\window.cpp:261: error: (-215) size.width>0 && size.height>0 in function cv::imshow

posted on 2016-07-20 22:23  可闲可填  阅读(1652)  评论(0编辑  收藏  举报

导航