硬件选型
在开发过程中遇到的第一个问题就是摄像头的选型。根据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文件,会发现文件中有这么一行
<camera show_format_dialog="true" device_name="@device:pnp://?/pci#ven_1131&dev_7130&subsys_00001131&rev_01#5&1b69b2&0&6800f0#{65e8773d-8f56-11d0-a3b9-00a0c9223196}/global" >
这一行定义的正是视频采集设备的设备号,只要将这一行的设备号设置为自己需要的视频采集设备,就可以在程序运行时打开对应的摄像头。
查找视频设备号可以通过软件GraphEdit实现,我以Pinnacle视频采集卡为例进行说明。下载GraphEdit并运行,Graph->Insert Filters,选择Video Capture Sources,会发现存在下面的说明。
device_name=@device:pnp://?/pci#ven_109e&dev_036e&subsys_1200bd11&rev_11#4&1c660dd6&0&08f0#{65e8773d-8f56-11d0-a3b9-00a0c9223196}/global
这就是Pinnacle视频采集卡的设备号,它与WDM_camera_flipV.xml中的device_name设备说明类似,不同的仅是"&"被替换为"&"。只要将WDM_camera_flipV.xml中的device_name设置为这个设备号,就可以在ARToolKit中对Pinnalce视频采集卡进行视频采集。WDM_camera_flipV.xml设置如下,注意要将所有的"&"替换为"&":
<camera show_format_dialog="true" device_name="@device:pnp://?/pci#ven_109e&dev_036e&subsys_1200bd11&rev_11#4&1c660dd6&0&08f0#{65e8773d-8f56-11d0-a3b9-00a0c9223196}/global" >
配置完毕后,ARToolKit就可以通过指定的视频采集设备进行视频采集。使用这种配置方法,ARToolKit可以使用支持VFW或WDM驱动的视频采集卡、USB摄像头或1394摄像头进行视频采集。
ARToolKit的官方网站:http://www.hitl.washington.edu/artoolkit/