OSDN Git Service

[TAG]2.4.1
[nyartoolkit-and/nyartoolkit-and.git] / tags / 2.4.1 / src / 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.histgram.*;\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.NyARHistgram;\r
8 /**\r
9  * 明点と暗点をPタイル法で検出して、その中央値を閾値とする。\r
10  * \r
11  * \r
12  */\r
13 public class NyARRasterThresholdAnalyzer_SlidePTile implements INyARRasterThresholdAnalyzer\r
14 {\r
15         private NyARRasterAnalyzer_Histgram _raster_analyzer;\r
16         private NyARHistgramAnalyzer_SlidePTile _sptile;\r
17         private NyARHistgram _histgram;\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                 this._sptile=new NyARHistgramAnalyzer_SlidePTile(i_persentage);\r
28                 this._histgram=new NyARHistgram(256);\r
29                 this._raster_analyzer=new NyARRasterAnalyzer_Histgram(i_raster_format,i_vertical_interval);\r
30         }\r
31         \r
32         public int analyzeRaster(INyARRaster i_input) throws NyARException\r
33         {\r
34                 this._raster_analyzer.analyzeRaster(i_input, this._histgram);\r
35                 return this._sptile.getThreshold(this._histgram);\r
36         }\r
37 }\r