2 * VFM+ARToolkitテストプログラム
3 * カメラから取り込んだデータからマーカーを検出して、一致度と変換行列を表示します。
5 * airmail(at)ebony.plala.or.jp
8 package jp.nyatla.nyartoolkit.qt.sample;
10 import jp.nyatla.nyartoolkit.NyARSingleDetectMarker;
11 import jp.nyatla.nyartoolkit.qt.utils.*;
13 import jp.nyatla.nyartoolkit.core.*;
14 import jp.nyatla.nyartoolkit.core.transmat.NyARTransMatResult;
18 public class NyarToolkitLinkTest extends Frame implements QtCaptureListener
20 private final String CARCODE_FILE ="../../Data/patt.hiro";
21 private final String PARAM_FILE ="../../Data/camera_para.dat";
22 private QtCameraCapture capture;
23 private NyARSingleDetectMarker nya;
24 private QtNyARRaster_RGB raster;
25 private NyARTransMatResult trans_mat_result=new NyARTransMatResult();
27 public NyarToolkitLinkTest() throws NyARException,NyARException
29 setTitle("QtCaptureTest");
30 setBounds(0,0,320+64,240+64);
32 capture=new QtCameraCapture(320,240,30f);
33 capture.setCaptureListener(this);
36 NyARParam ar_param=new NyARParam();
37 NyARCode ar_code =new NyARCode(16,16);
38 ar_param.loadFromARFile(PARAM_FILE);
39 ar_param.changeSize(320,240);
40 nya=new NyARSingleDetectMarker(ar_param,ar_code,80.0);
41 ar_code.loadFromARFile(CARCODE_FILE);
43 raster=new QtNyARRaster_RGB(320,240);
48 public void onUpdateBuffer(byte[] pixels)
52 raster.setBuffer(pixels);
55 Image img= raster.createImage();
57 Graphics g = getGraphics();
61 boolean is_marker_exist=nya.detectMarkerLite(raster,100);
64 nya.getTransmationMatrix(this.trans_mat_result);
65 atm=this.trans_mat_result.getArray();
68 g.drawImage(img, 32, 32,this);
70 g.drawString("マーカー検出:"+nya.getConfidence(),32,50);
72 for(int i2=0;i2<4;i2++){
73 g.drawString("["+i+"]["+i2+"]"+atm[i][i2],32,50+(1+i2*3+i)*16);
78 g.drawString("マーカー未検出:",32,100);
88 private void startCapture()
96 public static void main(String[] args) {
98 NyarToolkitLinkTest mainwin = new NyarToolkitLinkTest();
99 mainwin.setVisible(true);
100 mainwin.startCapture();