博主的开发环境是Win7和VC++6.0,亲测可用!
参考文献:
1.半藏的博客:ARToolKit的安装配置及例子演示(WindowsXP,VC++6.0开发环境)
http://hi.baidu.com/bycang/blog/item/5f0530c566a42ca08326ac6e.html
2.aulzhb的专栏的博客:ARToolKit硬件选型与配置
http://blog.csdn.net/aulzhb/article/details/4194205
更改by Sail2011 微博:http://weibo.com/sail2011
1.ARToolKit下载和安装。
下载地址:http://www.hitl.washington.edu/artoolkit/download/
下载以下的2个文件。
ARToolkit-2.71.2.tgz (988KB)
OpenVRML-0.14.3-win32.zip (10.8MB)
将上面2个文件解压缩到任意位置后得到2个文件夹,将OpenVRML文件夹剪切至ARToolKit文件夹中。
然后将以下的DLL文件复制进 [ARToolkit/bin/]路径下面去.
ARToolKit/OpenVRML/bin/js32.dll
请双击鼠标左键执行【ARToolKit/Configure.win32.bat】文件。
2.下载安装glut运行包
下载地址:http://www.xmission.com/~nate/glut.html
首先,请将下载到的glut-3.7.6-bin.zip解压缩。
将glut32.dll、glut.dll放进 [windows/system32]里面去。
把glut.h放进你自己的开发环境里的[include/GL]文件夹里面去。C:/Program Files/Microsoft Visual Studio/VC98/ Include/GL。
把glut32.lib、glut.lib放进你自己的开发环境的[Lib]文件夹里面去。 C:/Program Files/Microsoft Visual Studio/VC98/Lib。
3.复制 msvcp71d.dllmsvcr71d.dll到文件夹ARToolKit\bin; (这两样可能需要自己下载,我是在pchome下载的http://download.pchome.net/dll/m/detail-171895.htmlhttp://download.pchome.net/dll/m/detail-171898.html )
4.设置VisualC++
首先增加“包含文件”( Include file )与静态程序库(Library)的路径,点选[ 工具]-->[选项],然后在对话框里双击[ 目录 ]子菜单。
首先在“目录[S]:”下面的候选菜单栏里处于[ Include files]的状态下,将包含文件路径加进去(如图1):
![](https://mail.google.com/mail/u/0/?ui=2&ik=1f3661a31d&view=att&th=1396c3051c39ff63&attid=0.4&disp=emb&zw&atsh=1)
图1.包含文件路径
接下来 在“目录[S]:”下面的候选菜单栏里翻出“Library file”,用与上面同样的方法将下面表示的路径追加进去。如图2:
![](https://mail.google.com/mail/u/0/?ui=2&ik=1f3661a31d&view=att&th=1396c3051c39ff63&attid=0.1&disp=emb&zw&atsh=1)
图2.链接库路径
最后把静态程序库(Library)和样本程序编译一下生成出来。
用VisualC++打开 [ ARToolKit/ARToolKit.dsw ] 。
VisualC++的上部菜单里点击[组建]-->[批组建],在跳出来的窗口里点击【创建】按钮。
5.检查是否正常工作
使用/bin目录下的graphicsTest来测试ARToolKit的图形部分是否正常工作。如果工作正常的话,应该显示一个旋转的茶壶。
![](https://mail.google.com/mail/u/0/?ui=2&ik=1f3661a31d&view=att&th=1396c3051c39ff63&attid=0.3&disp=emb&zw&atsh=1)
在/bin目录下的videoTest可以完成上述测试。如果没有错误的话,应该出现一个视频窗口,显示出摄像头采集的内容。这个测试用来测试你的摄像头对ARToolKit视频模块和图形模块的支持。如下图
![](https://mail.google.com/mail/u/0/?ui=2&ik=1f3661a31d&view=att&th=1396c3051c39ff63&attid=0.2&disp=emb&zw&atsh=1)
(如果没有摄像头可以下载一个虚拟摄像头做简单的实验,推荐小懒猫特效视频模拟虚拟摄像头,如果打开videoTest.exe一闪即逝说明摄像头设置不对)
6.一个简单例子
当ARToolKit正常安装后,在/bin目录下有一个叫simpleLite.exe的程序可以展示ARToolKit的功能。不过你还需要把hiroPatt.pdf中的标志物打印出来。为了获得更好的效果,推荐把它粘在一个平的硬卡片上。双击打开simpleLite.exe。摄像头屏幕上的标志物上面出现OpenGL绘制出的虚拟物体。如图:
![](https://mail.google.com/mail/u/0/?ui=2&ik=1f3661a31d&view=att&th=1396c3051c39ff63&attid=0.5&disp=emb&zw&atsh=1)
7.以上步骤可能出现的问题和解决方法(sail2011)
在win7系统下,我的电脑是自带摄像头,如果直接点击simpleLite.exe会自动退出,经过多方调试要进行以下修改。
硬件选型
我在开发过程中遇到的第一个问题就是摄像头的选型。根据ARToolKit官网上的描述,摄像头或视频采集设备需要支持VFW或WDM驱动。检查的方法是运行amcap.exe,看devices中是否可以有该设备,同时是否可以通过此设备采集视频。
硬件选型解决方法:选择支持VFW或WDM驱动的设备,运行amcap.exe检查该设备是否支持这两种驱动。
硬件配置
支持VFW或WDM驱动的设备就可以作为ARToolIKit的采集设备,ARToolKit的示例程序可以默认打开这些设备进行视频采集。
若要开发自己的增强现实应用程序,需要对ARToolKit的视频采集做一定的配置。本文介绍Windows下的ARToolKit硬件配置。在ARToolKit 的示例程序中可以发现,程序一般都定义了如下的字符串:
char *vconf = "Data\\WDM_camera_flipV.xml";
这个是程序打开视频设备时的设备配置文件。WDM_camera_flipV.xml文件中定义了视频采集设备的设备号和一些参数设置等。要采用指定的设备进行采集,需要自己在WDM_camera_flipV.xml中设置设备号。
以记事本方式打开WDM_camera_flipV.xml文件,会发现文件中有这么一行
这一行定义的正是视频采集设备的设备号,只要将这一行的设备号设置为自己需要的视频采集设备,就可以在程序运行时打开对应的摄像头。
查找视频设备号可以通过软件GraphEdit实现,我以Pinnacle视频采集卡为例进行说明。下载GraphEdit并运行,Graph->Insert Filters,选择Video Capture Sources,会发现存在下面的说明。
这就是Pinnacle视频采集卡的设备号,它与WDM_camera_flipV.xml中的device_name设备说明类似,不同的仅是"&"被替换为"&"。只要将WDM_camera_flipV.xml中的device_name设置为这个设备号,就可以在ARToolKit中对Pinnalce视频采集卡进行视频采集。WDM_camera_flipV.xml设置如下,注意要将所有的"&"替换为"&":
配置完毕后,ARToolKit就可以通过指定的视频采集设备进行视频采集。使用这种配置方法,ARToolKit可以使用支持VFW或WDM驱动的视频采集卡、USB摄像头或1394摄像头进行视频采集。
另外还可能出现 “Camera parameter load error !!”的错误:
在ARToolKit中出现“Camera parameter load error !!”。
通过网上搜索,有人用下面的解决方法:
出现 “Camera parameter load error !!”这种错误则要把bin目录下的Data拷贝到所在活动工程文件之下,比如simpleTest中,这样程序即可运行了。
更改by Sail2011 微博:http://weibo.com/sail2011