package jp.nyatla.nyartoolkit.core.squaredetect;\r
-\r
+/*\r
+import java.awt.color.ColorSpace;\r
+import java.awt.image.BufferedImage;\r
+import java.io.*;\r
+import javax.imageio.*;\r
+import jp.nyatla.utils.j2se.*;*/\r
import jp.nyatla.nyartoolkit.NyARException;\r
import jp.nyatla.nyartoolkit.core.raster.*;\r
import jp.nyatla.nyartoolkit.core.labeling.artoolkit.*;\r
final int width=i_raster.getWidth();\r
final int height=i_raster.getHeight();\r
//クリップ領域の上端に接しているポイントを得る。\r
- int sx=i_entry_x;\r
- int sy=i_entry_y;\r
+\r
\r
int coord_num = 1;\r
- o_coord_x[0] = sx;\r
- o_coord_y[0] = sy;\r
+ o_coord_x[0] = i_entry_x;\r
+ o_coord_y[0] = i_entry_y;\r
int dir = 5;\r
\r
- int c = o_coord_x[0];\r
- int r = o_coord_y[0];\r
+ int c = i_entry_x;\r
+ int r = i_entry_y;\r
for (;;) {\r
dir = (dir + 5) % 8;//dirの正規化\r
//ここは頑張ればもっと最適化できると思うよ。\r
if (i_buf[(r + ydir[dir])*width+(c + xdir[dir])] == 0) {\r
break;\r
}\r
+/*\r
+ try{\r
+ BufferedImage b=new BufferedImage(width,height,ColorSpace.TYPE_RGB);\r
+ NyARRasterImageIO.copy(i_raster, b);\r
+ ImageIO.write(b,"png",new File("bug.png"));\r
+ }catch(Exception e){\r
+ \r
+ }*/\r
//8方向全て調べたけどラベルが無いよ?\r
throw new NyARException(); \r
}\r
}else{\r
- //境界に接しているとき\r
+ //境界に接しているとき \r
int i;\r
for (i = 0; i < 8; i++){ \r
final int x=c + xdir[dir];\r
o_coord_x[coord_num] = c;\r
o_coord_y[coord_num] = r;\r
// 終了条件判定\r
- if (c == sx && r == sy){\r
+ if (c == i_entry_x && r == i_entry_y){\r
coord_num++;\r
break;\r
}\r
}\r
}\r
return coord_num;\r
- } \r
+ }\r
\r
}\r