现在的位置: 首页 > 综合 > 正文

VS配置openCV方法论

2013年09月04日 ⁄ 综合 ⁄ 共 1417字 ⁄ 字号 评论关闭

我想,有二分之一的人安装opencv是上网找份资料,然后按照他们列出的步骤邯郸学步般地操作。我也有这么一个时期,在那个时期,总以为编程才是最主要的工作,至于这些安装系统、配置文件什么的,都是我所鄙视的,我觉得编程才是王道,就像前苏联着重发展重工业,就像朝鲜的先军政治。但是,安装系统、配置文件这些看似琐碎的活,都是你体现你计算机功底的地方,你要弄明白这些活中蕴涵的计算机知识。

说说VS安装openCV吧,确切地说,是在VS上配置openCV。首先你会先下一个openCV的可执行文件,就是那个三色的“品”字,虽然这个文件的后缀名是.exe,但是你却可以认为这是一个压缩文件,你双击之后得到的将是一份源代码,而不是安装一个软件。

好了,得到源代码了,涉及到第一个问题,有的文档让你用CMake编译这份源代码,有的没有,这其间的区别在哪里?本质原因是openCV是开源项目,它允许你改变openCV的源代码,所以既然有改动就一定涉及到编译,再者,一些第三方的文件,比如tbb如果想嵌入openCV使用,也是必须经过编译这一过程的,所以会有需不需要编译这码事。有的版本的openCV会直接发布编译好的版本,比如2.3版本之后,此时,你就直接在vs里面配置即可,有的发布了源代码,没有dll文件,这时你就要编译了。

解决了一个问题,下面解决第二个问题,配置VS。配置VS时,一大坨什么引入include目录,库目录什么的,有没有一条线在里面?捋一捋,我们编程的时候,总是要include一些头文件,这些头文件在哪里?如果没有IDE记录,这些事情都是要我们自己做的,我们要告诉程序这些库的路径。一切都不是理所当然,但是对于VS这个IDE来说,天生嵌入一些运行时库的路径是利索当然的,因为windows系统的一些库函数的位置都是固定的,比如文件夹c:/WINDOWS等,因此,当我们在程序中写入这样的语句“#include <stdio.h>”时,程序是不会报错的,因为IDE在我们电脑上生根的那天起,它已经知道了stdio.h的路径,同样也知道相应的实实在在的库函数可执行代码的路径。所以对于openCV这样一个“外来户”,并不是每一个电脑上都有,我们一定要让IDE知道openCV中头文件的路径,库函数可执行文件的路径,所以有了加入include目录和lib目录这样两个过程。

好了还剩下最后一个问题,就是真正一大坨的.lib的加入。一个可执行文件的生成总的来说分为两个过程,一是编译,一是链接,上文加入include为了编译的过程, 那么lib的出现就是为了链接的过程了,lib中是一些dll文件集合,dll是动态链接文件,说白了也是一些可执行文件,链接的过程,就是为了将你写的代码和这些库文件“结合”。在VS配置openCV过程中,你会有一个更新“附加依赖项”的过程,此时,你加入的这些**.lib就是链接时用到的库文件了,写过Makefile的同仁是否对这个过程似曾相识呢?

好了,没有疑惑了,这下我们可以毫无担忧地使用openCV的库了,就像标准C和标准C++的库一样。以后无论对编译器添加什么库的路径以及依赖关系,相信我们都能知其然,也知其所以然了。

最后附上我在VS2008上配置openCV 2.3.1时使用的一份文档,配置成功。

http://wenku.baidu.com/view/f8cfcf086c85ec3a86c2c501.html

抱歉!评论已关闭.