opencv+directshow+vs2005配置

OpenCv版本:1.0
Os:window XP
Vs2005版本:Visual Studio 2005 Team Suite(RTM.050727-4200)
cvaux.h中(cvaux/include/external/cvaux.h)第1137行的?/改为*/
在工具->选项->项目于解决方案->vc++目录->包含文件,中加入
<OpenCvInstallPath>/cxcore/include
<OpenCvInstallPath>/cv/include
<OpenCvInstallPath>/cvaux/include
<OpenCvInstallPath>/ml/include
<OpenCvInstallPath>/otherlibs/highgui/include
<OpenCvInstallPath>/otherlibs/cvcam/include
在工具->选项->项目于解决方案->vc++目录->库文件,中加入
<OpenCvInstallPath>/OPENCV/LIB 点完成即可
使用批生成,选择win32的cv,cvaux,cxcore,highgui,ml的debug和release版本。进行编译。
若遇见问题,请参照如下方法解决,有时会出现有时不会... cxcore.lib cv.lib highgui.lib ml.lib cvaux.lib等等文件无法找到,一种可能是没有配置好lib文件,一种可能是没有这些文件。
请参照上面的方法进行配置,这些文件都在opencv/lib中 找不到streams.h,编译highgui或是cxcore时ms出现这个问题,原因是没有directshow sdk支持 opencv中视频输入输出很大程度上是依靠directshow.
安装directshow sdk吧,包含在directx sdk中, directx 9.0b之前的版本都包含directshow,但是9.0c之后将directshow单独拿出发行.可以去微软的网站搜索,本次测试使用的是directx 9.0b 安装directx 9.0b
在工具->选项->项目于解决方案->vc++目录->包含文件,中加入
<DirectxInstallPath>/samples/Multimedia/DirectShow/BaseClasses
<DirectxInstallPath>/samples/Multimedia/Common/include
<DirectxInstallPath>/include
在工具->选项->项目于解决方案->vc++目录->库文件,中加入
<DirectxInstallPath>/lib
C:/Program Files/DXSDK/Samples/C++/DirectShow/BaseClasses 可能出现的问题:
(1)若出现:语法错误 : 缺少“;”(在标识符“PVOID64”的前面) directx中的包含文件和原有的winnt.h有冲突造成的,将<DirectxInstallPath>/include移动到最后一位即可.
(2)或者在其前面加上#define POINTER_64 __ptr64 若出现:operator=(LONG)的错误,适用于vs2005要求严格的语法,词句没有明确的返回值,在vs6中是可以的,但vs2005不支持默认的返回值. 将其改为:LONG operator=(LONG)
(3)还会出现很多的变量没有定义,如Count,idone没有定义等,
此类主要是vs2005默认使用强制for循环,
在项目->属性->配置属性->C/C++->语言中将强制For循环中的一致性后面的"是"改为否即可. Ok,
到此为止,我的Baseclasses顺利编译通过了,产生了两个文件,strmbasd.lib和STRMBASE.lib,将这两个文件考到<DirectxInstallPath>/lib中,再次批生成opencv即可. 在opencv的编译过程中可能遇到的一些问题是由于文件和系统本身自带的文件冲突造成的,可以将opencv的包含文件设置到顶部。

你可能感兴趣的:(测试,OS,XP,语言,工具,微软)