OSDN Git Service

git-svn-id: http://svn.sourceforge.jp/svnroot/nyartoolkit/NyARToolkit/trunk@647 7cac0...
[nyartoolkit-and/nyartoolkit-and.git] / lib / jp / nyatla / nyartoolkit / core / analyzer / raster / threshold / NyARRasterThresholdAnalyzer_SlidePTile.java
1 package jp.nyatla.nyartoolkit.core.analyzer.raster.threshold;\r
2 \r
3 import jp.nyatla.nyartoolkit.NyARException;\r
4 import jp.nyatla.nyartoolkit.core.analyzer.histogram.*;\r
5 import jp.nyatla.nyartoolkit.core.analyzer.raster.*;\r
6 import jp.nyatla.nyartoolkit.core.raster.INyARRaster;\r
7 import jp.nyatla.nyartoolkit.core.types.NyARHistogram;\r
8 /**\r
9  * 明点と暗点をPタイル法で検出して、その中央値を閾値とする。\r
10  * \r
11  * \r
12  */\r
13 public class NyARRasterThresholdAnalyzer_SlidePTile implements INyARRasterThresholdAnalyzer\r
14 {\r
15         protected NyARRasterAnalyzer_Histogram _raster_analyzer;\r
16         private NyARHistogramAnalyzer_SlidePTile _sptile;\r
17         private NyARHistogram _histogram;\r
18         public void setVerticalInterval(int i_step)\r
19         {\r
20                 this._raster_analyzer.setVerticalInterval(i_step);\r
21                 return;\r
22         }\r
23         public NyARRasterThresholdAnalyzer_SlidePTile(int i_persentage,int i_raster_format,int i_vertical_interval) throws NyARException\r
24         {\r
25                 assert (0 <= i_persentage && i_persentage <= 50);\r
26                 //初期化\r
27                 if(!initInstance(i_raster_format,i_vertical_interval)){\r
28                         throw new NyARException();\r
29                 }\r
30                 this._sptile=new NyARHistogramAnalyzer_SlidePTile(i_persentage);\r
31                 this._histogram=new NyARHistogram(256);\r
32         }\r
33         protected boolean initInstance(int i_raster_format,int i_vertical_interval) throws NyARException\r
34         {\r
35                 this._raster_analyzer=new NyARRasterAnalyzer_Histogram(i_raster_format,i_vertical_interval);\r
36                 return true;\r
37         }\r
38         public int analyzeRaster(INyARRaster i_input) throws NyARException\r
39         {\r
40                 this._raster_analyzer.analyzeRaster(i_input, this._histogram);\r
41                 return this._sptile.getThreshold(this._histogram);\r
42         }\r
43 }\r