import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
-import jp.nyatla.nyartoolkit.core.labeling.rlelabeling.RleLabelFragmentInfoStack;
+import jp.nyatla.nyartoolkit.core.labeling.rlelabeling.NyARRleLabelFragmentInfoStack;
import jp.nyatla.nyartoolkit.core.param.NyARParam;
import jp.nyatla.nyartoolkit.core.raster.NyARBinRaster;
import jp.nyatla.nyartoolkit.core.rasterfilter.rgb2bin.NyARRasterFilter_ARToolkitThreshold;
}catch(Exception e){
e.printStackTrace();
}
- RleLabelFragmentInfoStack ls=this._detect._getFragmentStack();
+ NyARRleLabelFragmentInfoStack ls=this._detect._getFragmentStack();
for(int i=0;i<ls.getLength();i++){
- RleLabelFragmentInfoStack.RleLabelFragmentInfo label=ls.getItem(i);
+ NyARRleLabelFragmentInfoStack.RleLabelFragmentInfo label=ls.getItem(i);
// if(label.area==0){break;}
Graphics g2=img.getGraphics();
g2.setColor(Color.RED);
import jp.nyatla.nyartoolkit.core.labeling.artoolkit.NyARLabeling_ARToolKit;\r
import jp.nyatla.nyartoolkit.core.param.NyARCameraDistortionFactor;\r
import jp.nyatla.nyartoolkit.core.raster.NyARBinRaster;\r
-import jp.nyatla.nyartoolkit.core.squaredetect.ContourPickup;\r
+import jp.nyatla.nyartoolkit.core.squaredetect.NyARContourPickup;\r
import jp.nyatla.nyartoolkit.core.squaredetect.NyARSquareContourDetector;\r
import jp.nyatla.nyartoolkit.core.squaredetect.NyARSquare;\r
import jp.nyatla.nyartoolkit.core.squaredetect.NyARSquareStack;\r
-import jp.nyatla.nyartoolkit.core.squaredetect.Coord2Linear;\r
+import jp.nyatla.nyartoolkit.core.squaredetect.NyARCoord2Linear;\r
import jp.nyatla.nyartoolkit.core.types.*;\r
\r
public class NyARQrCodeDetector extends NyARSquareContourDetector\r
\r
private final NyARLabelingImage _limage;\r
\r
- private final Coord2Linear _sqconvertor;\r
- private final ContourPickup _cpickup=new ContourPickup();\r
+ private final NyARCoord2Linear _sqconvertor;\r
+ private final NyARContourPickup _cpickup=new NyARContourPickup();\r
\r
/**\r
* 最大i_squre_max個のマーカーを検出するクラスを作成する。\r
this._labeling = new NyARLabeling_ARToolKit();\r
this._limage = new NyARLabelingImage(this._width, this._height);\r
this._binder=new NyARQrCodeSymbolBinder(i_dist_factor_ref);\r
- this._sqconvertor=new Coord2Linear(i_size,i_dist_factor_ref);\r
+ this._sqconvertor=new NyARCoord2Linear(i_size,i_dist_factor_ref);\r
\r
// 輪郭の最大長はMAX_COORD_NUMの2倍に制限\r
int number_of_coord = MAX_COORD_NUM* 2;\r
continue;\r
}\r
//輪郭分析用に正規化する。\r
- final int vertex1 = Coord2Linear.normalizeCoord(xcoord, ycoord, coord_num);\r
+ final int vertex1 = NyARCoord2Linear.normalizeCoord(xcoord, ycoord, coord_num);\r
\r
//ここから先が輪郭分析\r
NyARSquare square_ptr = o_square_stack.prePush();\r
import jp.nyatla.nyartoolkit.core.labeling.*;\r
import jp.nyatla.nyartoolkit.core.labeling.artoolkit.*;\r
import jp.nyatla.nyartoolkit.core.raster.*;\r
-import jp.nyatla.nyartoolkit.core.squaredetect.ContourPickup;\r
+import jp.nyatla.nyartoolkit.core.squaredetect.NyARContourPickup;\r
import jp.nyatla.nyartoolkit.core.squaredetect.NyARSquareContourDetector;\r
import jp.nyatla.nyartoolkit.core.squaredetect.NyARSquare;\r
import jp.nyatla.nyartoolkit.core.squaredetect.NyARSquareStack;\r
-import jp.nyatla.nyartoolkit.core.squaredetect.Coord2Linear;\r
+import jp.nyatla.nyartoolkit.core.squaredetect.NyARCoord2Linear;\r
import jp.nyatla.nyartoolkit.core.types.*;\r
import jp.nyatla.nyartoolkit.core.param.*;\r
\r
\r
private NyARLabelingImage _limage;\r
\r
- private final LabelOverlapChecker<NyARLabelingLabel> _overlap_checker = new LabelOverlapChecker<NyARLabelingLabel>(32,NyARLabelingLabel.class);\r
- private final Coord2Linear _sqconvertor;\r
- private final ContourPickup _cpickup=new ContourPickup();\r
+ private final NyARLabelOverlapChecker<NyARLabelingLabel> _overlap_checker = new NyARLabelOverlapChecker<NyARLabelingLabel>(32,NyARLabelingLabel.class);\r
+ private final NyARCoord2Linear _sqconvertor;\r
+ private final NyARContourPickup _cpickup=new NyARContourPickup();\r
/**\r
* 最大i_squre_max個のマーカーを検出するクラスを作成する。\r
* \r
this._height = i_size.h / 2;\r
this._labeling = new NyARLabeling_ARToolKit();\r
this._limage = new NyARLabelingImage(this._width, this._height);\r
- this._sqconvertor=new Coord2Linear(i_size,i_dist_factor_ref); \r
+ this._sqconvertor=new NyARCoord2Linear(i_size,i_dist_factor_ref); \r
\r
// 輪郭の最大長は画面に映りうる最大の長方形サイズ。\r
int number_of_coord = (this._width + this._height) * 2;\r
int[] xcoord = this._xcoord;\r
int[] ycoord = this._ycoord;\r
int coord_max = this._max_coord;\r
- final LabelOverlapChecker<NyARLabelingLabel> overlap = this._overlap_checker;\r
+ final NyARLabelOverlapChecker<NyARLabelingLabel> overlap = this._overlap_checker;\r
\r
int label_area;\r
NyARLabelingLabel label_pt;\r
continue;\r
}\r
//輪郭分析用に正規化する。\r
- final int vertex1 = Coord2Linear.normalizeCoord(xcoord, ycoord, coord_num);\r
+ final int vertex1 = NyARCoord2Linear.normalizeCoord(xcoord, ycoord, coord_num);\r
\r
//ここから先が輪郭分析\r
NyARSquare square_ptr = o_square_stack.prePush();\r
\r
private final NyARLabelingImage _limage;\r
\r
- private final LabelOverlapChecker<NyARLabelingLabel> _overlap_checker = new LabelOverlapChecker<NyARLabelingLabel>(32,NyARLabelingLabel.class);\r
- private final Coord2Linear _sqconvertor;\r
- private final ContourPickup _cpickup=new ContourPickup();\r
+ private final NyARLabelOverlapChecker<NyARLabelingLabel> _overlap_checker = new NyARLabelOverlapChecker<NyARLabelingLabel>(32,NyARLabelingLabel.class);\r
+ private final NyARCoord2Linear _sqconvertor;\r
+ private final NyARContourPickup _cpickup=new NyARContourPickup();\r
\r
/**\r
* 最大i_squre_max個のマーカーを検出するクラスを作成する。\r
this._height = i_size.h;\r
this._labeling = new NyARLabeling_ARToolKit();\r
this._limage = new NyARLabelingImage(this._width, this._height);\r
- this._sqconvertor=new Coord2Linear(i_size,i_dist_factor_ref); \r
+ this._sqconvertor=new NyARCoord2Linear(i_size,i_dist_factor_ref); \r
\r
// 輪郭の最大長は画面に映りうる最大の長方形サイズ。\r
int number_of_coord = (this._width + this._height) * 2;\r
final int[] xcoord = this._xcoord;\r
final int[] ycoord = this._ycoord;\r
final int coord_max = this._max_coord;\r
- final LabelOverlapChecker<NyARLabelingLabel> overlap = this._overlap_checker;\r
+ final NyARLabelOverlapChecker<NyARLabelingLabel> overlap = this._overlap_checker;\r
int label_area;\r
NyARLabelingLabel label_pt;\r
\r
continue;\r
}\r
//輪郭分析用に正規化する。\r
- final int vertex1 = Coord2Linear.normalizeCoord(xcoord, ycoord, coord_num);\r
+ final int vertex1 = NyARCoord2Linear.normalizeCoord(xcoord, ycoord, coord_num);\r
\r
//ここから先が輪郭分析\r
NyARSquare square_ptr = o_square_stack.prePush();\r
private final int _width;\r
private final int _height;\r
\r
- private final LabelOverlapChecker<RleLabelFragmentInfoStack.RleLabelFragmentInfo> _overlap_checker = new LabelOverlapChecker<RleLabelFragmentInfoStack.RleLabelFragmentInfo>(32,RleLabelFragmentInfoStack.RleLabelFragmentInfo.class);\r
+ private final NyARLabelOverlapChecker<NyARRleLabelFragmentInfoStack.RleLabelFragmentInfo> _overlap_checker = new NyARLabelOverlapChecker<NyARRleLabelFragmentInfoStack.RleLabelFragmentInfo>(32,NyARRleLabelFragmentInfoStack.RleLabelFragmentInfo.class);\r
private final SquareContourDetector_X2 _sqconvertor;\r
- private final ContourPickup _cpickup=new ContourPickup();\r
- private final RleLabelFragmentInfoStack _stack;\r
+ private final NyARContourPickup _cpickup=new NyARContourPickup();\r
+ private final NyARRleLabelFragmentInfoStack _stack;\r
\r
\r
\r
this._height = i_size.h;\r
this._labeling = new NyARLabeling_Rle(this._width,this._height);\r
this._sqconvertor=new SquareContourDetector_X2(i_size,i_dist_factor_ref);\r
- this._stack=new RleLabelFragmentInfoStack(i_size.w*i_size.h*2048/(320*240)+32);//検出可能な最大ラベル数\r
+ this._stack=new NyARRleLabelFragmentInfoStack(i_size.w*i_size.h*2048/(320*240)+32);//検出可能な最大ラベル数\r
\r
\r
// 輪郭の最大長は画面に映りうる最大の長方形サイズ。\r
*/\r
public final void detectMarker(NyARBinRaster i_raster, NyARSquareStack o_square_stack) throws NyARException\r
{\r
- final RleLabelFragmentInfoStack flagment=this._stack;\r
- final LabelOverlapChecker<RleLabelFragmentInfoStack.RleLabelFragmentInfo> overlap = this._overlap_checker;\r
+ final NyARRleLabelFragmentInfoStack flagment=this._stack;\r
+ final NyARLabelOverlapChecker<NyARRleLabelFragmentInfoStack.RleLabelFragmentInfo> overlap = this._overlap_checker;\r
\r
// 初期化\r
\r
}\r
//ラベルをソートしておく\r
flagment.sortByArea();\r
- RleLabelFragmentInfoStack.RleLabelFragmentInfo[] labels=flagment.getArray();\r
+ NyARRleLabelFragmentInfoStack.RleLabelFragmentInfo[] labels=flagment.getArray();\r
\r
\r
final int xsize = this._width;\r
overlap.setMaxLabels(label_num);\r
\r
for (int i=0; i < label_num; i++) {\r
- final RleLabelFragmentInfoStack.RleLabelFragmentInfo label_pt=labels[i];\r
+ final NyARRleLabelFragmentInfoStack.RleLabelFragmentInfo label_pt=labels[i];\r
final int label_area = label_pt.area;\r
\r
// クリップ領域が画面の枠に接していれば除外\r
\r
\r
import jp.nyatla.nyartoolkit.NyARException;\r
-import jp.nyatla.nyartoolkit.core.types.stack.NyObjectStack;\r
+import jp.nyatla.nyartoolkit.core.types.stack.NyARObjectStack;\r
\r
/**\r
* NyLabelの予約型動的配列\r
* \r
*/\r
-public abstract class NyARLabelInfoStack<T extends NyARLabelInfo> extends NyObjectStack<T>\r
+public abstract class NyARLabelInfoStack<T extends NyARLabelInfo> extends NyARObjectStack<T>\r
{\r
public NyARLabelInfoStack(int i_length,Class<T> i_element_type) throws NyARException\r
{\r
* ラベル同士の重なり(内包関係)を調べるクラスです。 \r
* ラベルリストに内包するラベルを蓄積し、それにターゲットのラベルが内包されているか を確認します。\r
*/\r
-public class LabelOverlapChecker<T extends NyARLabelInfo>\r
+public class NyARLabelOverlapChecker<T extends NyARLabelInfo>\r
{\r
private T[] _labels;\r
private int _length;\r
/*\r
*/\r
@SuppressWarnings("unchecked")\r
- public LabelOverlapChecker(int i_max_label,Class<T> i_element_type)\r
+ public NyARLabelOverlapChecker(int i_max_label,Class<T> i_element_type)\r
{\r
this._element_type=i_element_type;\r
this._labels = (T[])Array.newInstance(i_element_type, i_max_label);\r
\r
import jp.nyatla.nyartoolkit.NyARException;\r
import jp.nyatla.nyartoolkit.core.raster.*;\r
-import jp.nyatla.nyartoolkit.core.types.stack.NyObjectStack;\r
+import jp.nyatla.nyartoolkit.core.types.stack.NyARObjectStack;\r
\r
-class RleInfoStack extends NyObjectStack<RleInfoStack.RleInfo>\r
+class RleInfoStack extends NyARObjectStack<RleInfoStack.RleInfo>\r
{\r
public class RleInfo\r
{\r
* @return\r
* @throws NyARException\r
*/\r
- public int labeling(NyARBinRaster i_bin_raster, int i_top, int i_bottom,RleLabelFragmentInfoStack o_stack) throws NyARException\r
+ public int labeling(NyARBinRaster i_bin_raster, int i_top, int i_bottom,NyARRleLabelFragmentInfoStack o_stack) throws NyARException\r
{\r
assert(i_bin_raster.isEqualBufferType(NyARBufferType.INT1D_BIN_8));\r
return this.imple_labeling(i_bin_raster,0,i_top,i_bottom,o_stack);\r
* @return\r
* @throws NyARException\r
*/\r
- public int labeling(NyARGrayscaleRaster i_gs_raster,int i_th, int i_top, int i_bottom,RleLabelFragmentInfoStack o_stack) throws NyARException\r
+ public int labeling(NyARGrayscaleRaster i_gs_raster,int i_th, int i_top, int i_bottom,NyARRleLabelFragmentInfoStack o_stack) throws NyARException\r
{\r
assert(i_gs_raster.isEqualBufferType(NyARBufferType.INT1D_GRAY_8));\r
return this.imple_labeling(i_gs_raster,i_th,i_top,i_bottom,o_stack);\r
}\r
- private int imple_labeling(INyARRaster i_raster,int i_th,int i_top, int i_bottom,RleLabelFragmentInfoStack o_stack) throws NyARException\r
+ private int imple_labeling(INyARRaster i_raster,int i_th,int i_top, int i_bottom,NyARRleLabelFragmentInfoStack o_stack) throws NyARException\r
{\r
// リセット処理\r
final RleInfoStack rlestack=this._rlestack;\r
}\r
//対象のラベルだけ転写\r
o_stack.init(label_count);\r
- RleLabelFragmentInfoStack.RleLabelFragmentInfo[] o_dest_array=o_stack.getArray();\r
+ NyARRleLabelFragmentInfoStack.RleLabelFragmentInfo[] o_dest_array=o_stack.getArray();\r
final int max=this._max_area;\r
final int min=this._min_area;\r
int active_labels=0;\r
}\r
//\r
final RleInfoStack.RleInfo src_info=f_array[i];\r
- final RleLabelFragmentInfoStack.RleLabelFragmentInfo dest_info=o_dest_array[active_labels];\r
+ final NyARRleLabelFragmentInfoStack.RleLabelFragmentInfo dest_info=o_dest_array[active_labels];\r
dest_info.area=area;\r
dest_info.clip_b=src_info.clip_b;\r
dest_info.clip_r=src_info.clip_r;\r
import jp.nyatla.nyartoolkit.core.labeling.NyARLabelInfoStack;\r
\r
\r
-public class RleLabelFragmentInfoStack extends NyARLabelInfoStack<RleLabelFragmentInfoStack.RleLabelFragmentInfo>\r
+public class NyARRleLabelFragmentInfoStack extends NyARLabelInfoStack<NyARRleLabelFragmentInfoStack.RleLabelFragmentInfo>\r
{\r
public class RleLabelFragmentInfo extends NyARLabelInfo\r
{\r
//int area; // フラグメントラベルの領域数\r
public int entry_x; // フラグメントラベルの位置\r
} \r
- public RleLabelFragmentInfoStack(int i_length) throws NyARException\r
+ public NyARRleLabelFragmentInfoStack(int i_length) throws NyARException\r
{\r
- super(i_length, RleLabelFragmentInfoStack.RleLabelFragmentInfo.class);\r
+ super(i_length, NyARRleLabelFragmentInfoStack.RleLabelFragmentInfo.class);\r
return;\r
}\r
\r
- protected RleLabelFragmentInfoStack.RleLabelFragmentInfo createElement()\r
+ protected NyARRleLabelFragmentInfoStack.RleLabelFragmentInfo createElement()\r
{\r
- return new RleLabelFragmentInfoStack.RleLabelFragmentInfo();\r
+ return new NyARRleLabelFragmentInfoStack.RleLabelFragmentInfo();\r
}\r
}
\ No newline at end of file
* 輪郭線を取得するクラスです。\r
*\r
*/\r
-public class ContourPickup\r
+public class NyARContourPickup\r
{\r
//巡回参照できるように、テーブルを二重化\r
// 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6\r
* \r
*\r
*/\r
-public class Coord2Linear\r
+public class NyARCoord2Linear\r
{\r
private final double[] _xpos;\r
private final double[] _ypos; \r
private final double[] __getSquareLine_mean=new double[2];\r
private final double[] __getSquareLine_ev=new double[2];\r
private final NyARObserv2IdealMap _dist_factor;\r
- public Coord2Linear(NyARIntSize i_size,NyARCameraDistortionFactor i_distfactor_ref)\r
+ public NyARCoord2Linear(NyARIntSize i_size,NyARCameraDistortionFactor i_distfactor_ref)\r
{\r
//歪み計算テーブルを作ると、8*width/height*2の領域を消費します。\r
//領域を取りたくない場合は、i_dist_factor_refの値をそのまま使ってください。\r
* 座標店集合(輪郭線)から、四角系の頂点候補点を計算します。\r
*\r
*/\r
-public class Coord2SquareVertexIndexes\r
+public class NyARCoord2SquareVertexIndexes\r
{\r
private static final double VERTEX_FACTOR = 1.0;// 線検出のファクタ \r
private final NyARVertexCounter __getSquareVertex_wv1 = new NyARVertexCounter();\r
private final NyARVertexCounter __getSquareVertex_wv2 = new NyARVertexCounter();\r
- public Coord2SquareVertexIndexes()\r
+ public NyARCoord2SquareVertexIndexes()\r
{\r
return;\r
}\r
package jp.nyatla.nyartoolkit.core.squaredetect;\r
\r
import jp.nyatla.nyartoolkit.NyARException;\r
-import jp.nyatla.nyartoolkit.core.labeling.LabelOverlapChecker;\r
+import jp.nyatla.nyartoolkit.core.labeling.NyARLabelOverlapChecker;\r
import jp.nyatla.nyartoolkit.core.labeling.artoolkit.NyARLabelingImage;\r
import jp.nyatla.nyartoolkit.core.labeling.artoolkit.NyARLabelingLabel;\r
import jp.nyatla.nyartoolkit.core.labeling.artoolkit.NyARLabelingLabelStack;\r
\r
private final NyARLabelingImage _limage;\r
\r
- private final LabelOverlapChecker<NyARLabelingLabel> _overlap_checker = new LabelOverlapChecker<NyARLabelingLabel>(32,NyARLabelingLabel.class);\r
- private final ContourPickup _cpickup=new ContourPickup();\r
- private final Coord2SquareVertexIndexes _coord2vertex=new Coord2SquareVertexIndexes();\r
+ private final NyARLabelOverlapChecker<NyARLabelingLabel> _overlap_checker = new NyARLabelOverlapChecker<NyARLabelingLabel>(32,NyARLabelingLabel.class);\r
+ private final NyARContourPickup _cpickup=new NyARContourPickup();\r
+ private final NyARCoord2SquareVertexIndexes _coord2vertex=new NyARCoord2SquareVertexIndexes();\r
\r
private final int _max_coord;\r
private final int[] _xcoord;\r
final int coord_max = this._max_coord;\r
final int[] mkvertex =this.__detectMarker_mkvertex;\r
\r
- final LabelOverlapChecker<NyARLabelingLabel> overlap = this._overlap_checker;\r
+ final NyARLabelOverlapChecker<NyARLabelingLabel> overlap = this._overlap_checker;\r
\r
//重なりチェッカの最大数を設定\r
overlap.setMaxLabels(label_num);\r
package jp.nyatla.nyartoolkit.core.squaredetect;\r
\r
import jp.nyatla.nyartoolkit.NyARException;\r
-import jp.nyatla.nyartoolkit.core.labeling.LabelOverlapChecker;\r
+import jp.nyatla.nyartoolkit.core.labeling.NyARLabelOverlapChecker;\r
import jp.nyatla.nyartoolkit.core.labeling.rlelabeling.*;\r
import jp.nyatla.nyartoolkit.core.param.NyARCameraDistortionFactor;\r
import jp.nyatla.nyartoolkit.core.raster.NyARBinRaster;\r
\r
private final NyARLabeling_Rle _labeling;\r
\r
- private final LabelOverlapChecker<RleLabelFragmentInfoStack.RleLabelFragmentInfo> _overlap_checker = new LabelOverlapChecker<RleLabelFragmentInfoStack.RleLabelFragmentInfo>(32,RleLabelFragmentInfoStack.RleLabelFragmentInfo.class);\r
- private final ContourPickup _cpickup=new ContourPickup();\r
- private final RleLabelFragmentInfoStack _stack;\r
- private final Coord2SquareVertexIndexes _coord2vertex=new Coord2SquareVertexIndexes();\r
+ private final NyARLabelOverlapChecker<NyARRleLabelFragmentInfoStack.RleLabelFragmentInfo> _overlap_checker = new NyARLabelOverlapChecker<NyARRleLabelFragmentInfoStack.RleLabelFragmentInfo>(32,NyARRleLabelFragmentInfoStack.RleLabelFragmentInfo.class);\r
+ private final NyARContourPickup _cpickup=new NyARContourPickup();\r
+ private final NyARRleLabelFragmentInfoStack _stack;\r
+ private final NyARCoord2SquareVertexIndexes _coord2vertex=new NyARCoord2SquareVertexIndexes();\r
\r
private final int _max_coord;\r
private final int[] _xcoord;\r
//ラベリングのサイズを指定したいときはsetAreaRangeを使ってね。\r
this._labeling = new NyARLabeling_Rle(this._width,this._height);\r
this._labeling.setAreaRange(AR_AREA_MAX, AR_AREA_MIN);\r
- this._stack=new RleLabelFragmentInfoStack(i_size.w*i_size.h*2048/(320*240)+32);//検出可能な最大ラベル数\r
+ this._stack=new NyARRleLabelFragmentInfoStack(i_size.w*i_size.h*2048/(320*240)+32);//検出可能な最大ラベル数\r
\r
\r
// 輪郭の最大長は画面に映りうる最大の長方形サイズ。\r
\r
public void detectMarkerCB(NyARBinRaster i_raster, DetectMarkerCallback i_callback) throws NyARException\r
{\r
- final RleLabelFragmentInfoStack flagment=this._stack;\r
- final LabelOverlapChecker<RleLabelFragmentInfoStack.RleLabelFragmentInfo> overlap = this._overlap_checker;\r
+ final NyARRleLabelFragmentInfoStack flagment=this._stack;\r
+ final NyARLabelOverlapChecker<NyARRleLabelFragmentInfoStack.RleLabelFragmentInfo> overlap = this._overlap_checker;\r
\r
// ラベル数が0ならここまで\r
final int label_num=this._labeling.labeling(i_raster, 0, i_raster.getHeight(), flagment);\r
//ラベルをソートしておく\r
flagment.sortByArea();\r
//ラベルリストを取得\r
- RleLabelFragmentInfoStack.RleLabelFragmentInfo[] labels=flagment.getArray();\r
+ NyARRleLabelFragmentInfoStack.RleLabelFragmentInfo[] labels=flagment.getArray();\r
\r
final int xsize = this._width;\r
final int ysize = this._height;\r
overlap.setMaxLabels(label_num);\r
\r
for (int i=0; i < label_num; i++) {\r
- final RleLabelFragmentInfoStack.RleLabelFragmentInfo label_pt=labels[i];\r
+ final NyARRleLabelFragmentInfoStack.RleLabelFragmentInfo label_pt=labels[i];\r
int label_area = label_pt.area;\r
\r
// クリップ領域が画面の枠に接していれば除外\r
* デバック用API\r
* @return\r
*/\r
- public RleLabelFragmentInfoStack _getFragmentStack()\r
+ public NyARRleLabelFragmentInfoStack _getFragmentStack()\r
{\r
return this._stack;\r
}\r
\r
\r
import jp.nyatla.nyartoolkit.NyARException;\r
-import jp.nyatla.nyartoolkit.core.types.stack.NyObjectStack;\r
+import jp.nyatla.nyartoolkit.core.types.stack.NyARObjectStack;\r
\r
-public class NyARSquareStack extends NyObjectStack<NyARSquare>\r
+public class NyARSquareStack extends NyARObjectStack<NyARSquare>\r
{\r
public NyARSquareStack(int i_length) throws NyARException\r
{\r
import jp.nyatla.nyartoolkit.NyARException;\r
import jp.nyatla.nyartoolkit.core.types.*;\r
\r
-public class NyARIntPointStack extends NyObjectStack<NyARIntPoint2d>\r
+public class NyARIntPointStack extends NyARObjectStack<NyARIntPoint2d>\r
{\r
public NyARIntPointStack(int i_length) throws NyARException\r
{\r
import jp.nyatla.nyartoolkit.NyARException;\r
import jp.nyatla.nyartoolkit.core.types.NyARIntRect;\r
\r
-public class NyARIntRectStack extends NyObjectStack<NyARIntRect>\r
+public class NyARIntRectStack extends NyARObjectStack<NyARIntRect>\r
{\r
public NyARIntRectStack(int i_length) throws NyARException\r
{\r
* スタック型の可変長配列。\r
* 配列には実体を格納します。\r
*/\r
-public abstract class NyObjectStack<T>\r
+public abstract class NyARObjectStack<T>\r
{\r
protected final T[] _items;\r
protected int _length;\r
* JavaのGenedicsの制限突破\r
*/\r
@SuppressWarnings("unchecked")\r
- protected NyObjectStack(int i_length,Class<T> i_element_type) throws NyARException\r
+ protected NyARObjectStack(int i_length,Class<T> i_element_type) throws NyARException\r
{\r
//領域確保\r
this._items = (T[])Array.newInstance(i_element_type, i_length);\r
private NyARMatchPattDeviationColorData _deviation_data;\r
private NyARMatchPatt_Color_WITHOUT_PCA _match_patt;\r
private final NyARMatchPattResult __detectMarkerLite_mr=new NyARMatchPattResult();\r
- private Coord2Linear _coordline;\r
+ private NyARCoord2Linear _coordline;\r
\r
public DetectSquareCB(INyARColorPatt i_inst_patt,NyARCode i_ref_code,NyARParam i_param)\r
{\r
this._inst_patt=i_inst_patt;\r
this._deviation_data=new NyARMatchPattDeviationColorData(i_ref_code.getWidth(),i_ref_code.getHeight());\r
- this._coordline=new Coord2Linear(i_param.getScreenSize(),i_param.getDistortionFactor());\r
+ this._coordline=new NyARCoord2Linear(i_param.getScreenSize(),i_param.getDistortionFactor());\r
this._match_patt=new NyARMatchPatt_Color_WITHOUT_PCA(i_ref_code);\r
return;\r
}\r
import jp.nyatla.nyartoolkit.core.raster.rgb.*;\r
import jp.nyatla.nyartoolkit.core.transmat.*;\r
import jp.nyatla.nyartoolkit.core.rasterfilter.rgb2bin.*;\r
-import jp.nyatla.nyartoolkit.core.squaredetect.Coord2Linear;\r
+import jp.nyatla.nyartoolkit.core.squaredetect.NyARCoord2Linear;\r
import jp.nyatla.nyartoolkit.core.squaredetect.NyARSquareContourDetector;\r
import jp.nyatla.nyartoolkit.core.squaredetect.NyARSquare;\r
import jp.nyatla.nyartoolkit.core.squaredetect.NyARSquareContourDetector_Rle;\r
import jp.nyatla.nyartoolkit.core.types.*;\r
-import jp.nyatla.nyartoolkit.core.types.stack.NyObjectStack;\r
+import jp.nyatla.nyartoolkit.core.types.stack.NyARObjectStack;\r
\r
class NyARDetectMarkerResult\r
{\r
}\r
\r
\r
-class NyARDetectMarkerResultStack extends NyObjectStack<NyARDetectMarkerResult>\r
+class NyARDetectMarkerResultStack extends NyARObjectStack<NyARDetectMarkerResult>\r
{\r
public NyARDetectMarkerResultStack(int i_length) throws NyARException\r
{\r
private NyARMatchPattDeviationColorData _deviation_data;\r
private NyARMatchPatt_Color_WITHOUT_PCA[] _match_patt;\r
private final NyARMatchPattResult __detectMarkerLite_mr=new NyARMatchPattResult();\r
- private Coord2Linear _coordline;\r
+ private NyARCoord2Linear _coordline;\r
\r
public DetectSquareCB(INyARColorPatt i_inst_patt,NyARCode[] i_ref_code,int i_num_of_code,NyARParam i_param) throws NyARException\r
{\r
final int ch = i_ref_code[0].getHeight();\r
\r
this._inst_patt=i_inst_patt;\r
- this._coordline=new Coord2Linear(i_param.getScreenSize(),i_param.getDistortionFactor());\r
+ this._coordline=new NyARCoord2Linear(i_param.getScreenSize(),i_param.getDistortionFactor());\r
this._deviation_data=new NyARMatchPattDeviationColorData(cw,ch);\r
\r
//NyARMatchPatt_Color_WITHOUT_PCA[]の作成\r
private NyARMatchPattDeviationColorData _deviation_data;\r
private NyARMatchPatt_Color_WITHOUT_PCA[] _match_patt;\r
private final NyARMatchPattResult __detectMarkerLite_mr=new NyARMatchPattResult();\r
- private Coord2Linear _coordline;\r
+ private NyARCoord2Linear _coordline;\r
\r
public DetectSquareCB(NyARParam i_param)\r
{\r
this._match_patt=null;\r
- this._coordline=new Coord2Linear(i_param.getScreenSize(),i_param.getDistortionFactor());\r
+ this._coordline=new NyARCoord2Linear(i_param.getScreenSize(),i_param.getDistortionFactor());\r
return;\r
}\r
public void setNyARCodeTable(NyARCode[] i_ref_code,int i_code_resolution)\r
//所有インスタンス\r
private INyIdMarkerData _current_data;\r
private final NyIdMarkerPickup _id_pickup = new NyIdMarkerPickup();\r
- private Coord2Linear _coordline;\r
+ private NyARCoord2Linear _coordline;\r
private INyIdMarkerDataEncoder _encoder;\r
\r
\r
\r
public DetectSquareCB(NyARParam i_param,INyIdMarkerDataEncoder i_encoder)\r
{\r
- this._coordline=new Coord2Linear(i_param.getScreenSize(),i_param.getDistortionFactor());\r
+ this._coordline=new NyARCoord2Linear(i_param.getScreenSize(),i_param.getDistortionFactor());\r
this._data_temp=i_encoder.createDataInstance();\r
this._current_data=i_encoder.createDataInstance();\r
this._encoder=i_encoder;\r
import jp.nyatla.nyartoolkit.core.transmat.*;
import jp.nyatla.nyartoolkit.core.types.*;
import jp.nyatla.nyartoolkit.core.types.matrix.NyARDoubleMatrix22;
-import jp.nyatla.nyartoolkit.core.types.stack.NyObjectStack;
+import jp.nyatla.nyartoolkit.core.types.stack.*;
///**
package jp.nyatla.nyartoolkit.dev;\r
\r
import jp.nyatla.nyartoolkit.NyARException;\r
-import jp.nyatla.nyartoolkit.core.labeling.LabelOverlapChecker;\r
+import jp.nyatla.nyartoolkit.core.labeling.NyARLabelOverlapChecker;\r
import jp.nyatla.nyartoolkit.core.labeling.rlelabeling.*;\r
import jp.nyatla.nyartoolkit.core.param.NyARCameraDistortionFactor;\r
-import jp.nyatla.nyartoolkit.core.squaredetect.Coord2SquareVertexIndexes;\r
+import jp.nyatla.nyartoolkit.core.squaredetect.NyARCoord2SquareVertexIndexes;\r
import jp.nyatla.nyartoolkit.core.squaredetect.NyARSquare;\r
import jp.nyatla.nyartoolkit.core.types.NyARDoublePoint2d;\r
import jp.nyatla.nyartoolkit.core.types.NyARIntPoint2d;\r
\r
private final NyARLabeling_Rle _labeling;\r
\r
- private final LabelOverlapChecker<RleLabelFragmentInfoStack.RleLabelFragmentInfo> _overlap_checker = new LabelOverlapChecker<RleLabelFragmentInfoStack.RleLabelFragmentInfo>(32,RleLabelFragmentInfoStack.RleLabelFragmentInfo.class);\r
+ private final NyARLabelOverlapChecker<NyARRleLabelFragmentInfoStack.RleLabelFragmentInfo> _overlap_checker = new NyARLabelOverlapChecker<NyARRleLabelFragmentInfoStack.RleLabelFragmentInfo>(32,NyARRleLabelFragmentInfoStack.RleLabelFragmentInfo.class);\r
private final SquareContourDetector_Vector _sqconvertor;\r
- private final ContourPickup _cpickup=new ContourPickup();\r
- private final RleLabelFragmentInfoStack _stack;\r
+ private final NyARContourPickup _cpickup=new NyARContourPickup();\r
+ private final NyARRleLabelFragmentInfoStack _stack;\r
\r
private final int _max_coord;\r
/**\r
this._labeling = new NyARLabeling_Rle(this._width,this._height);\r
this._labeling.setAreaRange(AR_AREA_MAX, AR_AREA_MIN);\r
this._sqconvertor=new SquareContourDetector_Vector(i_size,i_dist_factor_ref);\r
- this._stack=new RleLabelFragmentInfoStack(i_size.w*i_size.h*2048/(320*240)+32);//検出可能な最大ラベル数\r
+ this._stack=new NyARRleLabelFragmentInfoStack(i_size.w*i_size.h*2048/(320*240)+32);//検出可能な最大ラベル数\r
\r
\r
// 輪郭の最大長は画面に映りうる最大の長方形サイズ。\r
*/\r
public final void detectMarker(NyARGrayscaleRaster i_gs,int i_th,NyARSquareStack o_square_stack) throws NyARException\r
{\r
- final RleLabelFragmentInfoStack flagment=this._stack;\r
- final LabelOverlapChecker<RleLabelFragmentInfoStack.RleLabelFragmentInfo> overlap = this._overlap_checker;\r
+ final NyARRleLabelFragmentInfoStack flagment=this._stack;\r
+ final NyARLabelOverlapChecker<NyARRleLabelFragmentInfoStack.RleLabelFragmentInfo> overlap = this._overlap_checker;\r
\r
// マーカーホルダをリセット\r
o_square_stack.clear();\r
//ラベルをソートしておく\r
flagment.sortByArea();\r
//ラベルリストを取得\r
- RleLabelFragmentInfoStack.RleLabelFragmentInfo[] labels=flagment.getArray();\r
+ NyARRleLabelFragmentInfoStack.RleLabelFragmentInfo[] labels=flagment.getArray();\r
\r
final int xsize = this._width;\r
final int ysize = this._height;\r
overlap.setMaxLabels(label_num);\r
\r
for (int i=0; i < label_num; i++) {\r
- final RleLabelFragmentInfoStack.RleLabelFragmentInfo label_pt=labels[i];\r
+ final NyARRleLabelFragmentInfoStack.RleLabelFragmentInfo label_pt=labels[i];\r
final int label_area = label_pt.area;\r
\r
// クリップ領域が画面の枠に接していれば除外\r
* デバック用API\r
* @return\r
*/\r
- public RleLabelFragmentInfoStack _getFragmentStack()\r
+ public NyARRleLabelFragmentInfoStack _getFragmentStack()\r
{\r
return this._stack;\r
}\r
{\r
private final NyARObserv2IdealMap2 _distmap;\r
private final int[] __detectMarker_mkvertex = new int[4];\r
- private final Coord2SquareVertexIndexes _coord2vertex=new Coord2SquareVertexIndexes();\r
+ private final NyARCoord2SquareVertexIndexes _coord2vertex=new NyARCoord2SquareVertexIndexes();\r
public SquareContourDetector_Vector(NyARIntSize i_size,NyARCameraDistortionFactor i_distfactor_ref)\r
{\r
this._distmap=new NyARObserv2IdealMap2(i_distfactor_ref,i_size);\r
\r
import jp.nyatla.nyartoolkit.NyARException;\r
import jp.nyatla.nyartoolkit.core.types.*;\r
-import jp.nyatla.nyartoolkit.core.types.stack.NyObjectStack;\r
+import jp.nyatla.nyartoolkit.core.types.stack.NyARObjectStack;\r
\r
-public class IntRectStack extends NyObjectStack<NyARIntRect>\r
+public class IntRectStack extends NyARObjectStack<NyARIntRect>\r
{\r
protected NyARIntRect createElement()\r
{\r
\r
import jp.nyatla.nyartoolkit.NyARException;\r
import jp.nyatla.nyartoolkit.core.NyARCode;\r
-import jp.nyatla.nyartoolkit.core.squaredetect.Coord2Linear;\r
+import jp.nyatla.nyartoolkit.core.squaredetect.NyARCoord2Linear;\r
import jp.nyatla.nyartoolkit.core.squaredetect.NyARSquareContourDetector;\r
import jp.nyatla.nyartoolkit.core.squaredetect.NyARSquare;\r
import jp.nyatla.nyartoolkit.core.types.*;\r
private NyARMatchPattDeviationColorData _deviation_data;\r
private NyARMatchPatt_Color_WITHOUT_PCA _match_patt;\r
private final NyARMatchPattResult __detectMarkerLite_mr=new NyARMatchPattResult();\r
- private Coord2Linear _coordline;\r
+ private NyARCoord2Linear _coordline;\r
\r
private NyARPerspectiveProjectionMatrix _prjmat;\r
private INyARCameraDistortionFactor _dist;\r
//\r
this._inst_patt=i_inst_patt;\r
this._deviation_data=new NyARMatchPattDeviationColorData(i_ref_code.getWidth(),i_ref_code.getHeight());\r
- this._coordline=new Coord2Linear(i_param.getScreenSize(),i_param.getDistortionFactor());\r
+ this._coordline=new NyARCoord2Linear(i_param.getScreenSize(),i_param.getDistortionFactor());\r
this._match_patt=new NyARMatchPatt_Color_WITHOUT_PCA(i_ref_code);\r
return;\r
}\r
\r
import jp.nyatla.nyartoolkit.NyARException;\r
import jp.nyatla.nyartoolkit.core.types.*;\r
-import jp.nyatla.nyartoolkit.core.types.stack.NyObjectStack;\r
+import jp.nyatla.nyartoolkit.core.types.stack.NyARObjectStack;\r
\r
-public class NextFrameMarkerStack extends NyObjectStack<NextFrameMarkerStack.Item>\r
+public class NextFrameMarkerStack extends NyARObjectStack<NextFrameMarkerStack.Item>\r
{\r
public class Item\r
{\r