关于OpenCV在VS IDE下的安装和配置,一些热心的网友已经分享了它们的成功经验, 这里有一篇很好的文章。这里我无意重复这些内容,我想强调的是,在配置OpenCV开发环境的时候,除了满足能够正常工作外,我们还可以从移植和维护的角度多考虑一下。我们可能需要注意以下几个方面的问题:
1. 配置的开发环境最好要独立于OpenCV的安装目录。设想这样的情况,我们需要将OpenCV工程转移到另外一台电脑,这台电脑已经安装了相同版本的OpenCV,但是不幸的是,它安装在另外一个目录中。在这样的情况下,如果想让这个OpenCV工程能够顺利的编译通过,我们需要修改工程设置中任何引用到OpenCV安装目录的地方,并将它们修改成正确的OpenCV安装目录。解决这样问题的一个好的办法就是设置一个保存OpenCV安装目录的环境变量,让OpenCV工程引用这个环境变量。如果OpenCV的安装目录发生了变化,我们唯一需要做的就是修改环境变量的值。例如,我们可以设置两个环境变量:
OPENCVAP_LIB = C:/Program Files/OpenCV/lib
OPENCVAP_INCLUDE =
C:/Program Files/OpenCV
这两个环境变量分别记录了OpenCV的安装目录和lib目录。
接下来当我们需要为OpenCV工程设置附加包含目录时,我们就可以使用环境变量来替换绝对目录:
"$(OPENCVAP_INCLUDE)/cxcore/include";
"$(OPENCVAP_INCLUDE)/cv/include";
"$(OPENCVAP_INCLUDE)/otherlibs"
当我们需要为OpenCV工程设置附加库目录时,同样的我们可以使用环境变量来替换决定目录:
2.配这的开发环境最好也要独立于VS IDE,即OpenCV开发环境不能保存在VS IDE中,而是保存在OpenCV工程设置中。同样的设想这样的情况,将OpenCV工程移植到另外一台电脑中,这台电脑虽然安装了相同版本的VS IDE但是并没有正确的配置OpenCV开发环境,很显然OpenCV工程不能得到正确的编译,我们只能在这台电脑中重新配置一次OpenCV环境。如果OpenCV环境配置在工程设置时,拷贝OpenCV工程的时候连同编译环境也一同拷贝了,这样即使VS IDE没有设置也能正确的编译。
3.当我们连接必要的库文件的时候,我们可以在代码中指定需要连接那些库文件,而不必在项目设置中设置它们。在一个头文件中,例如staAfx.h中,添加:
#pragma
comment(lib,"cxcore.lib")
#pragma
comment(lib,"cv.lib")
#pragma
comment(lib,"cvaux.lib")
#pragma
comment(lib,"highgui.lib")
剩下的工作就是在源文件中包含需要的头文件,这样就使用OpenCV代给我们的强大功能了:
#include
"
cv.h
"
#include
"
cxcore.h
"
#include
"
cxtypes.h
"
#include
"
highgui/highgui.h
"
附加1:VS IDE + Visual Assist X
相信Visual Assist X是很多Windows程序员的最爱,甚至是达到了没有Visual Assist X就不能正常工作的程度。除了其中的"语法高亮"功能外,最让我喜欢的就是"符号解析"和在符号声明和定义之间自由的切换,这样为我们阅读源码提供了很大的方便。为了使Visual Assist X帮我们解析OpenCV库中各种符号,我们需要在Visual Assist X中设置OpenCV的安装目录,这样当VS IDE被启动并且OpenCV项目被打开的时候,Visual Assist X会自动寻找到OpenCV的安装目录,为我们解析各种符号。下面以Visual Assist X 10.3为例,说明如何设置。启动Visual Assist X并选择"Visual Assist X Options",在其中选择"Projects->C/C++ Directories"。在"Platform"选项中选择"Custom",在"Show Directories"中选择"Stable include files",在其中添加OpenCV的各个模块的头文件目录:
C:
//
Program
Files
//
OpenCV
//
cv
//
include
;
C:
/
/Program
Files
/
/OpenCV
/
/cxcore
//
include
;
C:
//
Program
Files
//
OpenCV
//
otherlibs
//
highgui
;
接下来在"Show Directories"中选择"Source files",在其中添加OpenCV的各个模块的源文件目录:
C://Program Files//OpenCV//cv//src;
C://Program Files//OpenCV//cxcore//src;
C://Program Files//OpenCV//otherlibs//highgui;
有了这样的设置,我们就可以很方便的查阅OpenCV函数的源码。
历史记录
03/13/2007 v1.0
原文的第一版
03/16/2007 v1.1
添加如果在Visual Assist X中设置OpenCV目录