因为最近在测试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. 标定相机
为了允许程序读写文件,使用管理员权限打开Windows的cmd窗口,使用cd+路径切换到ARToolKit5目录下,即输入:cd C:\Program Files (x86)\ARToolKit5\bin
键入命令:calib_camera.exe打开摄像头标定程序:
按照默认设置点击确认即可。此时程序会连接相机,这个过程需要一些时间。注意!这个过程一定要关闭正在使用相机的其他程序!
此时打开ARToolKit安装目录下的:\ARToolKit5\doc\patterns\Calibration chessboard(A4).pdf,使用A4纸打印该靶标并粘贴至平整版面上,将相机对准靶标进行标定。这里需要注意!当靶标格点被识别为绿色时,意味着该位置靶标格点未完全进入视野,该位置不可用!当靶标格点全部识别出并变为红色时,按下空格键采集图像。程序采集10幅图像后,会自动进行标定并将结果存储到文件中。
若重投影误差比较大,需要重新进行标记。如符合要求,可以键入文件名或者直接回车以默认文件名保存标定结果。
4. 训练标记
ARToolKit使用的标记是具有黑色边界的正方形,边界内部图案可以自定义,但要求该图案不能旋转对称。在\ARToolKit5\doc\patterns\文件夹下可以找到已经给定的一些标记。继续在上一步完成标定的管理员权限下运行的cmd窗口中输入:mk_patt.exe,键入训练结果的名称,也可以直接按回车以默认名称保存训练结果。此时将出现视频采集窗口:
将相机对准标记,使标记尽可能大,并保证左上角窗口中的标记正立,也即图像中标记左上均为红色边界。鼠标左击窗口,完成标记训练。键入文件名,存储标记训练结果。
5. 测试ARToolKit
使用cd+路径切换到ARToolKit5的bin文件夹下,输入simple.exe,按照默认数值设置相机,将相机对准标记,此时会在标记上方叠加一个蓝色方块,证明此时已完成环境的配置。
6. 配置Visual Studio工程
Visual Studio需要使用VS2013版本,否则会出现各类报错!新建Win32控制台项目。
将ARToolKit安装路径下的\ARToolKit5\bin\Data文件夹拷贝至项目工程的路径下,如果标定和标记训练的结果存储在其他地方,需要将这两个文件一起拷贝至该项目工程文件夹下。
项目使用Debug win32进行编译,下面需要配置win32的属性。在属性管理器中打开折叠的路径,在Debug win32文件夹上右击-属性:
在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,即可调试出结果: