`
lveyo
  • 浏览: 909976 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

OpenCV在windowsXP环境下的工程设置

阅读更多

在编写使用OpenCV函数的程序时,首先,需要正确的配置工程设置。主要是设置预先编译的头文件的路径与动态链接库的路径。<o:p></o:p>

一 在VC编译器下,在Project菜单下选择setting,弹出对话框。<o:p></o:p>

Setting For 下拉菜单中选择All Configurations , Debug Release版本设置配置。<o:p></o:p>

<o:p> </o:p>

1  设置预编译的头文件<o:p></o:p>

选择C/C++ 【Category ,在下拉菜单中选择Preprocessor,然后在Additional Include directories  输入以下几项:<o:p></o:p>


C:\Program Files \OpenCV\cv\include  (
根据本人机器上OpenCV的安装路径进行设置,如在D盘,则写D: ,以下同)<o:p></o:p>

C:\Program Files \OpenCV\otherlibs\highgui<o:p></o:p>

C:\Program Files \OpenCV\cxcore\include(新版本需要)<o:p></o:p>

C:\Program Files \OpenCV\otherlibs\cvcam\include<o:p></o:p>

<o:p> </o:p>

每一条之间用逗号隔开。其中C:\Program Files\Intel\opencv 为OpenCV的安装路径,这是通用的安装路径,建议最好采用这种设置,以方便大家交流;不然,每次都要重新设置路径,比较麻烦。<o:p></o:p>

<o:p> </o:p>

2   设置链接库<o:p></o:p>

Link按键下的 Category下拉菜单中选择 Input选项(指定要连接的库文件,放弃连接的库文件hao  )Additional library path中,输入:<o:p></o:p>

<o:p> </o:p>

C:\Program Files \OpenCV\lib<o:p></o:p>

<o:p> </o:p>

最后在 Setting For下拉菜单中依次选择 Win32 Debug Win32 Release,分别在Object /library modules 输入:<o:p></o:p>

cv.lib highgui .lib cxcore.lib cvcam.lib<o:p></o:p>

注意每个库之间用一个空格隔开。<o:p></o:p>

或者直接在all configurations中的Object /library modules 输入:cv.lib highgui.lib cxcore.lib(新版本需要) cvcam.lib<o:p></o:p>

cxcore.lib highgui.lib 是几乎所有OpenCV程序都要用到的函数库,分别封装了基本的函数和图形界面接口,cv.lib中封装了大量的图像处理函数,cvcam.lib中封装了很多针对视频流的处理函数)<o:p></o:p>

<o:p> </o:p>

当前工程就可以使用OpenCV的函数了。<o:p></o:p>

<o:p> </o:p>

二 如果一直要使用OpenCV的函数,把其路径设置到系统目录下<o:p></o:p>

Tools 菜单下选择 Options 子菜单,在弹出的对话框中选择Directory,将用到的几个库的路径添加进去。以后只需将所用的库在Object /library modules下输入就可以了,不用再每次指定路径。<o:p></o:p>

Show directories for 下拉菜单中选择Include files输入:<o:p></o:p>

<o:p> </o:p>

C:\Program Files \OpenCV\cv\include<o:p></o:p>

C:\Program Files \OpenCV\otherlibs\highgui<o:p></o:p>

C:\Program Files \OpenCV\cxcore\include(新版本需要)<o:p></o:p>

C:\Program Files \OpenCV\otherlibs\cvcam\include<o:p></o:p>

<o:p> </o:p>

Show directories for 下拉菜单中选择Library files,输入:<o:p></o:p>

<o:p> </o:p>

C:\Program Files \OpenCV\lib<o:p></o:p>

<o:p> </o:p>

注意:(防止每次都拷贝.dll文件)<o:p></o:p>

我的电脑属性高级环境变量—path—C:\Program Files\OpenCV\bin<o:p></o:p>

<o:p> </o:p>

  关于DLL的一点介绍。<o:p></o:p>

所谓:工欲善其事,必先利其器。链接的问题是使用OpenCV时一个经常遇到的问题,有必要做一简单介绍。<o:p></o:p>

动态链接DLL与静态链接库一样包含了所提供函数的目标代码,但程序运行动态链接库中的函数时,连接程序并不将包含在动态链接库中的目标函数的代码复制至运行文件,而只是简单的记录了函数的位置信息,程序在运行时根据这些信息找到函数的目标代码。(运行时连接,故称为动态链接库。至于动态链接库的详细介绍以及其与静态链接库的优缺点比较,参见参考文献。)<o:p></o:p>

以上的设置就可以保证找到所需的动态链接库,不过我们还是有必要对系统怎样找到DLL文件 做一了解:<o:p></o:p>

函数在动态链接库中的位置信息放在一个独立的导入库文件中(以.lib为后缀)Windows将遵循下面的搜索顺序来定位DLL
 1
包含EXE文件的目录,
 2
进程的当前工作目录,
 3
Windows系统目录,
 4
Windows目录,
 5
列在Path环境变量中的一系列目录。
  
这样  如果运行时仍然报错:不到*.DLL, 那么,就将所需的*.DLL粘贴到可执行文件的文件夹下<o:p></o:p>

这里有一个很容易发生错误的陷阱。如果你使用VC++进行项目开发,并且为DLL模块专门创建了一个项目,然后将生成的DLL文件拷贝到系统目录下,从应用程序中调用DLL模块。到目前为止,一切正常。接下来对DLL模块做了一些修改后重新生成了新的DLL文件,但你忘记将新的DLL文件拷贝到系统目录下。下一次当你运行应用程序时,它仍加载了老版本的DLL文件,这可要当心!<o:p></o:p>

在发布自己的程序时,一定要记得提供相应的动态链接库。<o:p></o:p>

参考文献:<o:p></o:p>

1  VC6常用项目参数设置之比较  作者 陆其明<o:p></o:p>

face=Times New Roman color=#0000ffhttp://www.vchelp.net/itbookreview/view_paper.asp?paper_id=794<o:p></o:p>

2亲密接触VC6.0编译器  作者 陆其明<o:p></o:p>

face=Times New Roman color=#0000ffhttp://www.vchelp.net/itbookreview/view_paper.asp?paper_id=571<o:p></o:p>

3 <<windows操作系统原理>>   P378<o:p></o:p>

关于操作系统与动态链接库的一个不错的说明<o:p></o:p>

4 face=Times New Roman color=#0000ffhttp://www.vczx.com/article/show.php?id=98<o:p></o:p>

<o:p> </o:p>

<o:p> </o:p>

补充:一些关于VC调试的小技巧:<o:p></o:p>

调试时基本上都在Release版本下即可,所以可以把Debug删掉,具体方法是,在Build->Configurations中,将该工程的Win32 DebugRemove掉,只留下Release版本。<o:p></o:p>

为保证调试时能看到调试信息,在 Project->setting->C/C++Catelog一栏选中general,然后在Debug info 一项里选择”Program Database”;在Catelog一栏选中Optimizations,然后选择Disable(Debug);最后在setting->Link下,在Catelog一栏选中general,将Generate debug info复选框选中。这样一来,尽管在Release版本下调试程序,仍然会看到Debug信息<o:p></o:p>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics