OSDN Git Service

[bugfix]nyartoolkit
[nyartoolkit-and/nyartoolkit-and.git] / trunk / src / jp / nyatla / nyartoolkit / processor / SingleARMarkerProcesser.java
index 19fb191..7341d7c 100644 (file)
@@ -89,12 +89,14 @@ public abstract class SingleARMarkerProcesser
                        }\r
                }\r
                private NyARIntPoint2d[] __tmp_vertex=NyARIntPoint2d.createArray(4);\r
+               private int _target_id;\r
                /**\r
                 * Initialize call back handler.\r
                 */\r
-               public void init(INyARRgbRaster i_raster)\r
+               public void init(INyARRgbRaster i_raster,int i_target_id)\r
                {\r
                        this._ref_raster=i_raster;\r
+                       this._target_id=i_target_id;\r
                        this.code_index=-1;\r
                        this.confidence=Double.MIN_NORMAL;\r
                }\r
@@ -143,7 +145,7 @@ public abstract class SingleARMarkerProcesser
                        }\r
                        \r
                        //認識処理\r
-                       if (this.code_index == -1) { // マーカ未認識\r
+                       if (this._target_id == -1) { // マーカ未認識\r
                                //現在は未認識\r
                                if (c1 < this.cf_threshold_new) {\r
                                        return;\r
@@ -157,7 +159,7 @@ public abstract class SingleARMarkerProcesser
                        }else{\r
                                //現在はマーカ認識中                           \r
                                // 現在のマーカを認識したか?\r
-                               if (lcode_index != this.code_index) {\r
+                               if (lcode_index != this._target_id) {\r
                                        // 認識中のマーカではないので無視\r
                                        return;\r
                                }\r
@@ -169,6 +171,7 @@ public abstract class SingleARMarkerProcesser
                                if (this.confidence>c1) {\r
                                        return;\r
                                }\r
+                               this.code_index=this._target_id;\r
                        }\r
                        //新しく認識、または継続認識中に更新があったときだけ、Square情報を更新する。\r
                        //ココから先はこの条件でしか実行されない。\r
@@ -283,7 +286,7 @@ public abstract class SingleARMarkerProcesser
                this._tobin_filter.doFilter(i_raster, this._bin_raster);\r
 \r
                // スクエアコードを探す\r
-               this._detectmarker_cb.init(i_raster);\r
+               this._detectmarker_cb.init(i_raster,this._current_arcode_index);\r
                this._square_detect.detectMarkerCB(this._bin_raster,this._detectmarker_cb);\r
                \r
                // 認識状態を更新\r