看过example后,就会想本身动动手,这里改改那里修修。咱们先试着添加本身喜欢的marker/nft进行识别。php
好比我作了一个法拉利的marker:工具
还有网上找了一个法拉利logo的图片用于NFT(Natural Feature Tracking):网站
对应显示的模型是这样的(仅供参考^_^!)spa
1.制做marker图片3d
首先咱们找到doc/patterns/Blank pattern.png,使用这个空白的marker图片制做出本身想要的marker。之因此使用这个blank pattern,是由于这个空白marker图片的符合marker的基本要求:orm
- 被边缘所包围的部分就是咱们所称的pattern,其必须具备旋转不对称性。pattern能够是黑白的,也能够是彩色的。blog
咱们将法拉利的logo弄成黑白的,再添加到blank pattern中。获得如下maker:图片
2.训练marker图片ci
咱们使用这个在线工具"Tarotaro"进行训练(若是想离线训练,可使用ARToolKit提供的mk_patt的离线工具)。get
a.打开Tarotaro网站并点击下面红框连接。
b.会打开以下的工具。这时将你须要训练的marker放入摄像头视野中,直到marker边缘出现红色边框。
界面介绍:
Mode Select:有Camera Mode和Load marker image两种方式。咱们下面使用的就是Camera Mode方式。Load marker image是直接输入本地的marker图片进行训练。
Marker Segments和Marker Size我还不是很清楚是什么。咱们这选择默认参数便可。
c.当marker边缘出现红色边框后,咱们点击Get Pattern按钮,就能够获得下图,咱们能够看到marker边框变成绿色了,此时咱们选择Save Current按钮就能够获得对应的pattern文件,此处将其命名为ferrari.patt(初始后缀是pat,能够本身修改成patt)。
3.修改配置文件
咱们选择example中的ARApp2的配置文件进行更改。主要是更改models.dat和markers.dat文件。
咱们先将ferrari.patt文件和网上搜罗来的ferrari模型文件导入到ARApp2中。
在markers.dat添加
在model.dat添加
4.编译运行
配置文件修改完成后,咱们就能够编译运行了。请看结果:
![]() |
![]() |
1.选择图片
NFT其实就是提取图片的Natural Feature(天然特征)而后进行跟踪。ARToolKit中会先对图片进行处理,获得一组数据,后续追踪过程使用的实际上是处理获得的数据集。并非什么图片均可以进行NFT,对于进行NFT的图片,有如下一些要求:
因此我选择下面这张图片作NFT:
2.提取图片特征
利用genTexData来生成对应的追踪数据
选择提取图片特征的程度,数值越大提取的特征越多。当相机离图片越近的时候,追踪效果会越好。此处使用默认值。
使用Photoshop查看该图片:
发现其分辨率是72,因此Enter resolution to use这部分输入72。
而最大最小分辨率范围,根据Training ARToolKit Natural Feature Tracking (NFT) to Recognize and Track an Image文章中提到的,根据不一样相机分辨率及相机远近有不一样取值,通常使用20~120最为合适。而咱们这边最大分辨率只有72,因此我选择20~72。
获得image set(ferrari-nft.iset)和featureList(ferrari.fset&ferrari.fset3)两组数据
咱们使用dispFeatureSet工具能够显示一下看看特征点提取状况:
3.修改配置文件
咱们修改ARAppNFT的配置文件来试验咱们的成果。
首先添加对应训练数据:
修改markers.dat
和上面marker图片训练同样,添加法拉利模型,并在models.dat中添加法拉利模型显示信息:
4.编译运行