实验环境:vs2008+opencv1.0+xp虚拟机。
- 搭建环境:
1.下载安装最新的OpenCV版本,我使用的是OpenCV_1.0.exe.
2.按照默认选项安装OpenCV,在安装过程中,选择需要修改系统环境变量。
3.打开电脑属性->高级->环境变量,在系统变量path里加上bin的路径(D:\Program Files\OpenCV\bin)。(此处OpenCV安装在D盘)
若漏掉此步在运行过程中可能会报”highgui110.dll未找到”之类的错误。
4.打开OpenCV安装目录下的_make文件夹,用VS2008打开其中的opencv.vs2005.sln,进行批生成(生成->批生成->仅选择所有的debug|win32和release|win32->生成)。
在生成过程中可能会出现如下错误:
“fatal error LNK1181: 无法打开输入文件“cvauxd.lib”
“error C2039: “foreground_regions” : 不是“CvFGDStatModel”的成员”
解决的方法是:在解决方案资源管理器中打开“cvaux->Include->External的cvaux. h文件,用查找功能找到上述foreground_regions成员,会发现此成员已被注释掉了,只要将其上一行末尾的“/”改为“*/”使该成员可见,再次启动项目,应该就可以编译通过了。
如果未进行批生成可能会在运行时弹”应用程序初始化错误”。
5.在VC的工程中加入库文件和包含文件。
点击工具->选项->项目和解决方案->VC++目录, 切换目录下拉至库文件(Library files), 添加路径D:\OpenCV\lib;
切换目录下拉至包含文件(Include files), 添加以下路径:
D:\Program Files\OpenCV\cv\include
D:\Program Files\OpenCV\cvaux\include
D:\Program Files\OpenCV\cxcore\include
D:\Program Files\OpenCV\otherlibs\highgui
D:\Program Files\\OpenCV\otherlibs\cvcam\include
6. 以上是一些全局设置,新建一个OpenCV工程后,需要再进行局部设置。
点击项目->XXX属性,在项目属性页中点击配置属性->链接器->输入,在附加依赖项中添加cxcore.lib cv.lib highgui.lib.
7. 最后在项目的头文件中加入所用到的包含文件,如:
#include “cv.h”
#include “highgui.h”
#include ”cxcore.h”
- 搭建项目
首先以:BoostingTracker为例。
下载之后得到的包名为BoostingTracker_Source_v03.zip,解压所得为如下内容
由于没有sln文件所以无法直接运行,需要新建工程来执行。
此包中有三个算法,分别是BoostingTracker、BeyondSemiBoostingTracker、SemiBoostingTracker,所以需要分别新建三个工程来实现它们。下面以BoostingTracker为例。
1. 在上图的BoostingTracker文件夹下新建工程名为BoostingTracker,工程新建为空项目,把BoostingTracker文件夹下的三个文件都拷贝到这个工程中,同时把FRAMEWORK\ImageIO文件夹和FRAMEWORK\OnlineBoosting文件夹下的所有文件都拷贝到这个工程中。然后把main.cpp文件删除。
2. 在项目的源代码》右键新建项》项目名为:MainFun-BoostingApplication.cpp,这个就是项目的主函数,将BoostingApplication.cpp里的代码复制到MainFun-BoostingApplication.cpp来,在工程目录下删除BoostingApplication.cpp文件,在主函数所在的文件MainFun-BoostingApplication.cpp中加入如下内容:
#pragma comment(lib,"cv.lib")
#pragma comment(lib,"cxcore.lib")
#pragma comment(lib,"highgui.lib")
3.把上图中的config.txt文件也拷贝到和cpp文件相同目录下,里面的信息是要读取的图像(这里是将视频每帧都转成图像来进行读取跟踪的)文件的路径以及初始化参数信息。config.txt需要更改的参数如下图:
4.在项目工程属性的“配置属性”->“常规”->“字符集”中,将“使用Unicode字符集”改为“使用多字节字符集”,项目的附加包含目录中加入如下两个文件夹的详细路径:
\BoostingTracker_Source_v03\FRAMEWORK
\BoostingTracker_Source_v03\FRAMEWORK\Tools
*5.右键项目头文件->添加->现有项->将BoostingTracker工程下所有文件(.cpp和.h)添加进去。(如果出现类似错误:14 error LNK2019: 无法解析的外部符号 "public: __thiscall BoostingTracke)
6.由于新版本的vs2013运行老版本的代码,会有一些兼容问题,百度都可以解决。
7.直接运行,会弹出图像的第一帧,这时用鼠标在图像上画出一个要跟踪的区域,然后切换到命令行command窗口,按下回车即可看到跟踪结果。