ARToolKit安装调试及工程配置

因为最近在测试ARToolKit,但是网上的安装教程一般都比较简略,关于工程配置的内容也很少,因此这里将我配置ARToolKit的流程整理出来,供大家参考。

1. 安装ARToolKit5.3.2安装包

2. 配置glut和glew

ARToolKit中包含了glut和glew的相关文件。在ARToolKit安装目录下搜索glut32.lib,将该文件复制到C:\Windows\System32下;搜索glut64.lib,将改文件复制到C:\Windows\SysWOW64下。

将ARToolKit安装目录下的\ARToolKit5\include\win32-i386\GL文件夹复制到VS2013的安装目录下,以我的电脑为例,该位置为C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC。

3. 标定相机

为了允许程序读写文件,使用管理员权限打开Windowscmd窗口,使用cd+路径切换到ARToolKit5目录下,即输入:cd C:\Program Files (x86)\ARToolKit5\bin

键入命令:calib_camera.exe打开摄像头标定程序:

ARToolKit安装调试及工程配置

按照默认设置点击确认即可。此时程序会连接相机,这个过程需要一些时间。注意!这个过程一定要关闭正在使用相机的其他程序

此时打开ARToolKit安装目录下的:\ARToolKit5\doc\patterns\Calibration chessboard(A4).pdf,使用A4纸打印该靶标并粘贴至平整版面上,将相机对准靶标进行标定。这里需要注意!当靶标格点被识别为绿色时,意味着该位置靶标格点未完全进入视野,该位置不可用!当靶标格点全部识别出并变为红色时,按下空格键采集图像。程序采集10幅图像后,会自动进行标定并将结果存储到文件中。

ARToolKit安装调试及工程配置

ARToolKit安装调试及工程配置

ARToolKit安装调试及工程配置

若重投影误差比较大,需要重新进行标记。如符合要求,可以键入文件名或者直接回车以默认文件名保存标定结果。

4. 训练标记

ARToolKit使用的标记是具有黑色边界的正方形,边界内部图案可以自定义,但要求该图案不能旋转对称。在\ARToolKit5\doc\patterns\文件夹下可以找到已经给定的一些标记。继续在上一步完成标定的管理员权限下运行的cmd窗口中输入:mk_patt.exe,键入训练结果的名称,也可以直接按回车以默认名称保存训练结果。此时将出现视频采集窗口:

ARToolKit安装调试及工程配置

将相机对准标记,使标记尽可能大,并保证左上角窗口中的标记正立,也即图像中标记左上均为红色边界。鼠标左击窗口,完成标记训练。键入文件名,存储标记训练结果。

5. 测试ARToolKit

使用cd+路径切换到ARToolKit5的bin文件夹下,输入simple.exe,按照默认数值设置相机,将相机对准标记,此时会在标记上方叠加一个蓝色方块,证明此时已完成环境的配置。

ARToolKit安装调试及工程配置

6. 配置Visual Studio工程

Visual Studio需要使用VS2013版本,否则会出现各类报错!新建Win32控制台项目。

将ARToolKit安装路径下的\ARToolKit5\bin\Data文件夹拷贝至项目工程的路径下,如果标定和标记训练的结果存储在其他地方,需要将这两个文件一起拷贝至该项目工程文件夹下。

项目使用Debug win32进行编译,下面需要配置win32的属性。在属性管理器中打开折叠的路径,在Debug win32文件夹上右击-属性:

ARToolKit安装调试及工程配置

在VC++目录菜单下,选择包含目录,增加(如非默认路径,则将前面的部分替换成自己安装ARToolKit的路径,后续同理):

C:\Program Files(x86)\ARToolKit5\include

C:\Program Files(x86)\ARToolKit5\include\win32-i386

选择库目录,增加:

C:\Program Files(x86)\ARToolKit5\lib\win32-i386

选择链接器-输入-附加依赖项,增加以下附加依赖项:

AR.lib

AR2.lib

AR2d.lib

ARd.lib

ARgsub.lib

ARgsub_lite.lib

ARgsub_lited.lib

ARgsubd.lib

ARICP.lib

ARICPd.lib

ARMulti.lib

ARMultid.lib

ARosg.lib

ARosgd.lib

ARUtil.lib

ARUtild.lib

ARvideo.lib

ARvideod.lib

ARWrapper.lib

ARWrapperd.lib

Eden.lib

glut32.lib

KPM.lib

KPMd.lib

libjpeg.lib

OpenThreads.lib

osg.lib

osgAnimation.lib

osgDB.lib

osgFX.lib

osgGA.lib

osgManipulator.lib

osgParticle.lib

osgPresentation.lib

osgShadow.lib

osgSim.lib

osgTerrain.lib

osgText.lib

osgUtil.lib

osgViewer.lib

osgVolume.lib

osgWidget.lib

pthreadVC2.lib

为了解决scanf等安全问题,点击C/C++-预处理器,选择预处理器定义,增加:

_CRT_SECURE_NO_WARNINGS

从而关闭和scanf以及sprintf有关的警告。

选择C/C++-预编译头,选择“预编译头”-不使用预编译头,来关闭和stdafx.h有关的警告信息。

打开ARToolKit安装目录下的\ARToolKit5\examples\simple\simpleTest.c,可以直接将该文件复制到VS的工程文件夹下,移除该工程的cpp文件,添加该c文件。此时点击Debug,即可调试出结果:

ARToolKit安装调试及工程配置

如果报错显示有变量或函数重定义等,需要确认是否是正确的VS版本,VS2015等版本按照如上方法配置,即使步骤正确,也会报错,如实在需要在VS2015上运行,需要使用Cmake对源代码进行重新编译。