看過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.編譯運行