簡介

本篇介紹香港科藝家 Bryan Chung 自製的 Library in Processing: simpleARToolKit,一套基於 jARToolKit 衍伸出來可在 Processing 中直接編寫擴增實境 (Augmented Reality) 應用程式的函式庫 (Library)。

而這個 jARToolKit 正是由前篇介紹的 ARToolKit 衍伸出來,也屬 Open Source 的軟體。

jARToolKit 是改以 Java 為開發環境,並支援 Java3D 來繪製三維圖形。在 Processing 中將 jARToolKit 的 jar 及 dll 置入資源庫資料夾中 (由於 Processing 本身脫離不了 Java),即可呼叫使用。

PS. 看到 dll,令人想到原本 ARToolKit 的 Cross-Platform 就此消失?(若需 Cross-Platform 又要使用 Java,可找找 NyARToolkit,甚至可再轉至 Flash AS3 上使用:: FLARToolKit)

 

預備

以下簡述如何在 Processing 中撰寫基本 AR 應用程式:

1. 確定您系統中有 Processing,也正確安裝 Java 相關執行環境。
2. 確定系統有裝 WebCam 並已經正常運作。
3. 到 Bryan 的部落格下載 simpleARToolKit,解壓縮至 {Processing 安裝目錄}\libraries 資料夾內。
4. 將 {Processing 安裝目錄}\librarie\simpleARToolKit\print\pattHiro.pdf 列印出來。(視要用到的標記)
5. 至 {Processing 安裝目錄}\librarie\simpleARToolKit\examples 打開 demo01 或 demo02 範例。
6. 按下 RUN 按鈕編譯並執行。
7. 完工!

若是上述過程一切順利,您將會得到以下畫面 (追蹤 patt.kanji):

simpleARToolKit 建置成功畫面

若是出現以下錯誤畫面:

代表沒有 import Processing 關於視訊設備的輸出入函式庫,可在程式碼的頭幾行中,加入:

import processing.video.*;

即可成功執行 cheers :-)

 

實戰

import processing.opengl.*;
import pARToolKit.*; // 請先將 simpleARToolKit 放入 Processing 的 libraries 裡面
import processing.video.*; // 直接編譯&執行範例有出錯時加入此行

SimpleARToolKit ar01;

void setup() {
  size(320,240,OPENGL); // 這邊可更改 AR 的追蹤解析度 (解析度會影響效能)
  hint(ENABLE_OPENGL_2X_SMOOTH);
  background(0);
  frameRate(15);
  // patt.hiro 表示此程式碼會追蹤辨識 hiro 標記,可改成 patt.kanji,則會追蹤"人"的標記 (如上上圖)
  ar01 = new SimpleARToolKit(this,"patt.hiro");
  // 將 showBox() 註冊給 ar01,追蹤到 ar01 指定的標記時,執行 showBox() 函式
  ar01.register("showBox");
}

void draw() { // draw() 函式是依照 frameRate 率不斷執行其內容
  background(0);
  ar01.showImage();
  if (ar01.findMatch(100)) { // 猜測 100 是 Threshold 值
    ar01.showObject();
  }
}

void showBox(SimpleARToolKit t) {
  pushMatrix();
  noFill();
  stroke(255,200,0);
  box(50); // 可將此行改為其他 OpenGL 繪圖指令
  popMatrix();
}

以上為 demo01 的註解參考。
Processing 語法類似 Java,不過有其固定格式,詳情參閱 Processing 網站或是本身程式內的基本範例。

 

備註

(一) 要從 camera 中 crab 資訊,需要安裝 Apple QuickTime 或 iTunes (有版本連帶 QuickTime) 以及 WinVDIG,請安裝下載。[原文出處]


(二) 每個範例的目錄下都會有個 data 子目錄,如 {Processing 安裝目錄}\librarie\simpleARToolKit\examples\demo01\data

而 data 目錄下的東西都有其用途:

  • camera_para.dat 儲存相機參數用 (在 ARToolKit 中可針對自訂相機作相機校正)
  • patt.hiro 標記檔
  • patt.kanji 標記檔

(三) 若您覺得標記太少不敷使用,有以下辦法可解決:


1. 在 ARToolKit 中可針對自訂圖式轉存為 patt 檔,可供程式讀取辨識。
2. 可在網上尋找關於 ARToolKitPlus 這套軟體,內有最高支援 4096 個辨識效果佳的標記,可以拿來利用。
3. 製作 pattern 的程式下載(@dk01.cc)

[ 尚待補 ]

創作者介紹
創作者 DK 的頭像
DK

DKBLOG

DK 發表在 痞客邦 留言(6) 人氣()