今天开始写博客,记录今后的问题和解决思路。
问题:在win7上调用opencv打开easycap机子直接蓝屏,奔溃。。。
思路:本来去年做过一个类似的项目,不过是在ubuntu下面用v4l2写的,对windows编程不熟,查资料后决定选择directshow做为解决办法。
1.配置directshow环境
这个在网上搜了很多,本人用的是IDE是vs2012,而vs2012自带了directshow,那就直接开搞。首先编译一些directshow的sample来看看效果,这些sample在微软提供的sdk开发包里有,我上传到这里,有需要的可以通过这个百度云链接下载:http://pan.baidu.com/s/1kTLuS4J,里面有一个amcap例子,通过它我顺利的打开了easycap摄像头,但是看着里面的代码实在头疼 ,又开始搜资料。
2.使用CCameraDS类
找了一些通过directshow打开easycap的资料,下面是这个资料的链接:http://wiki.opencv.org.cn/index.php/%E4%BD%BF%E7%94%A8DirectShow%E9%87%87%E9%9B%86%E5%9B%BE%E5%83%8F,然后新建一个c++控制带工程,把相关的代码加入其中,提示缺少qedit.h头文件,我在网上下了一个,加入工程,又说dxtrans.h找不到,百度一下,发现了解决办法:
在#include "dxtrans.h"加入一下几行代码,并且注释掉该头文件
#define __IDxtCompositor_INTERFACE_DEFINED__
#d