http://www.cnblogs.com/polobymulberry/p/5905680.html
閱讀目錄
0x00 - 前言0x01 – 示例簡介0x02 - Pattern文件0x03 - 其他配置文件回到頂部PS : 我突然意識到ARToolKit本質可能就是一個可以實時求解相機內外參的解決方案。
拿到一個新的SDK,90%的人應該都會先跑一下Example。拿到ARToolKit的SDK,也不例外。不過本人之前是做iOS開發的,所以從官網下載的是ARToolKit5-bin-5.3.2-iOS.tar.gz。后面的博客內容基本上也都是圍繞這個SDK進行的。當然,如果今年秋季出了ARToolKit6,我也會立馬跟進的,聽說ARToolKit加入了SLAM。
example | pattern | result |
ARApp | ![]() | ![]() |
ARApp2 | ![]() | ![]() |
ARAppOSG | ![]() | ![]() |
ARAppMovie | ![]() | ![]() |
ARAppNFT | ![]() | ![]() |
ARAppNFTOSG | ![]() | ![]() |
ARAppCameraTest | 無 | 主要是為了測試相機的若干功能,比如屏幕分辨率切換、截屏、前后攝像頭切換。 |
ARAppES1 | ![]() | ![]() |
pattern指的是你識別的圖片模板,雖然上述表格使用圖片來表示pattern,但是在ARToolKit中,我們需要對圖片進行訓練,對于marker類型的圖片是輸出”.patt”文件以便ARToolKit進行識別。而NFT(Natural Feature Tracking)自然圖片是輸出FeatureList,比如上述使用的pinball.jpg輸出的FeatureList就是“pinball.fset”、”pinball.fset3”(而pinball.iset表示的是pinball.jpg的image set,即原始的圖片信息)。關于圖片/marker訓練這一部分后面會專門開一章詳解。
pattern的圖片可以打印出來,example中的pattern圖片都是放在doc/patterns文件夾下。比如hiro pattern的pattern文件就是hiro.patt。
打開hiro.patt文件,你可以看到里面全是數字,不過很明顯,這些應該都是顏色值:
考慮到hiro是黑白圖,所以我將這些顏色值當做灰度值進行了圖片輸出,得到了下面這張圖片。敢情hiro.patt的本質其實是這樣的:
而pinball.jpg的pattern文件是這樣的:
pinball.fset &pinball.fset3 |
![]() |
Tip
pattern的圖片存放在doc/patterns文件夾下,hiro pattern有兩張圖片
hiro pattern with border | hiro pattern |
![]() | ![]() |
實際使用中,可以明顯發現hiro pattern with border的識別率遠遠高于hiro pattern,這是因為有了border的對比(注意到border和pattern黑色邊緣的對比明顯),對于pattern的識別率有顯著提高。
除了pattern文件,每個example都有三個同樣的文件 – camera_para.dat、markers.dat、models.dat。
camera_para.dat相機標定獲取到的相機內參。
下圖解釋了內參與外參的含義(來源自知乎機器視覺的相機標定到底是什么?)。
另外還有TRANSPARENT選項,添加這個字段表示該模型有透明部分。
其實你也可以通過修改程序,增加自己的配置選項,還是很方便擴展的。
新聞熱點
疑難解答