您的位置:首页 > 运维架构

vs2008 下配置 opencv2.0 的总结,以及 vc6 下配置 opencv1.0 的转帖

2010-03-11 14:54 676 查看
详细的配置方法可见

http://www.opencv.org.cn/index.php/VC_2008_Express%E4%B8%8B%E5%AE%89%E8%A3%85OpenCV2.0

总结起来,基本步骤就是:

安装opencv

->安装cmake

->用cmake产生供vs2008打开的工程文件

->用vs2008打开刚刚生成的工程进行编译(好像是把opencv中的源代码编译成可供windows调用的dll,至于为何opencv不能直接安装编译好的binary我还不太了解)

->配置3个文件路径

安装的工作就做好了。

如果查一下vs2008的工具-选项,在项目和解决方案-VC++目录的“可执行文件”、“包含文件”和“库文件”中分别可以找到$(PATH)、“C:/OpenCV2.0/vs2008/include/opencv”和“C:/OpenCV2.0/vs2008/lib”(后两个需要自己按情况配置),猜想这几条目录就应当为vs指定了文件路径。删去第三条后,果然编译提示找不到.lib。不过在环境变量path中删掉C:/OpenCV2.0/vs2008/bin却仍然能够运行,猜测是库文件中存储了dll目录。为了验证dll目录确实是上述目录,将该目录改名后程序则提示找不到dll。

上面提到的三个目录,是opencv安装后,用cmake编译完了,再手工配置的。环境变量path中的dll目录也需要配置,否则,在vs外单独运行用到了opencv的程序时,就会提示找不到dll。

有了上述三个目录,程序还不能链接通过,还需要在项目属性中添加 链接器-输入-附加依赖项,比如可以加入cxcore200d.lib cv200d.lib highgui200d.lib(按照需要)。或者在程序中用这种方式添加:

#pragma comment(lib,"cxcore200d.lib")

#pragma comment(lib,"highgui200d.lib")

最后在程序中直接包含所需的头文件,如:

#include <highgui.h>

程序配置完毕!

另外还有一份opencv 1.0在VC6下的配置方法,也贴在这里,可供参考:

=====================================================
1)选择菜单"Project"->"Settings..."

2) 选择 "C/C++" tab -> "Preprocessor" category -> "Additional Include Directories:" 加入绝对路径:

d:/Program Files/OpenCV/cxcore/include,d:/Program Files/OpenCV/cv/include,d:/Program Files/OpenCV/otherlibs/highgui,d:/Program Files/OpenCV/cvaux/include,d:/Program Files/OpenCV/otherlibs/cvcam/include

3)选择 "Link" tab -> "Input" category -> "Additional library path:". 加入输入库所在的路径

d:/Program Files/OpenCV/lib

4)选择 "Link" tab -> "General" category -> "Object/library modules". 加入空格分隔的

cv.lib cxcore.lib cvaux.lib highgui.lib cvcam.lib

5)在工程文件的***view.h文件开头包含.h文件:比如
#include "cv.h"
#include "cvaux.h"
#include "highgui.h"
#include "cvcam.h"
到此OpenCV的配置就完成了,以后直接调用函数就可以了。

--------------------------华丽的分割线--------------------------------------

注意:
1、使用OpenCV前,要添加环境变量:桌面->我的电脑->右键->属性->高级->环境变量->用户变量->path->编辑,在后面加“;”,然后添加D:/Program Files/OpenCV/bin
如果不添加,运行最终exe文件可能出现"无法找到cxcore97d.dll,请重新安装!"

2、修改bug:安装目录找到cvaux.h( d:/openCV/cvaux/include/cvaux.h )并修改第1137行(最好用UEStudio打开,因为Ultra Edit可以显示行号):
CvMemStorage* storage; /*storage for foreground_regions /
为------------->
CvMemStorage* storage; /*storage for foreground_regions*/
intel开发的时候漏掉了一个*号。

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