1 package jp.nyatla.nyartoolkit.core.types;
\r
6 public class NyARHistgram
\r
11 public final int[] data;
\r
13 * 有効なサンプリング値の範囲。[0-data.length-1]
\r
17 * 有効なサンプルの総数 data[i]
\r
19 public int total_of_data;
\r
23 public NyARHistgram(int i_length)
\r
25 this.data=new int[i_length];
\r
26 this.length=i_length;
\r
27 this.total_of_data=0;
\r
30 * 区間i_stからi_edまでの総データ数を返します。
\r
35 public int getTotal(int i_st,int i_ed)
\r
37 assert(i_st<i_ed && i_ed<this.length);
\r
40 for(int i=i_st;i<=i_ed;i++){
\r
46 * 指定したi_pos未満サンプルを0にします。
\r
49 public void lowCut(int i_pos)
\r
52 for(int i=0;i<i_pos;i++){
\r
56 this.total_of_data-=s;
\r
59 * 指定したi_pos以上のサンプルを0にします。
\r
62 public void highCut(int i_pos)
\r
65 for(int i=this.length-1;i>=i_pos;i--){
\r
69 this.total_of_data-=s;
\r
72 * 最小の値が格納されているサンプル番号を返します。
\r
74 public int getMinSample()
\r
76 int[] data=this.data;
\r
77 int ret=this.length-1;
\r
79 for(int i=this.length-2;i>=0;i--)
\r
92 public int getMinData()
\r
94 return this.data[this.getMinSample()];
\r
100 public int getAverage()
\r
103 for(int i=this.length-1;i>=0;i--)
\r
105 sum+=this.data[i]*i;
\r
107 return (int)(sum/this.total_of_data);
\r