
this code is to perform LocalColorHistogram.But i can't understand it
public Vector<Double> getFeatureVector(int[] inImg, int height, int width, int[] maskImg, int flag, double feature, int featureDimension) { int gridCount = 4; int row = gridCount * gridCount; Vector<Double> localColorHistogram = new Vector<Double>(row * 64); int size = width * height; int i = 0; int j = 0; int k = 0; double[][] histogram = new double[row][64];
for(i=0 ; i<row ; i++){
histogram[i] = new double[64];
for(j=0 ; j<64 ; j++){
histogram[i][j] = 0.0d;
}
}
for(i=0 ; i<size ; i++){
k = (inImg[i]>>18 & 0x30) | (inImg[i]>>12 & 0xc) | (inImg[i]>>6 & 0x3);
j = getGrid(i, width, height, gridCount);
histogram[j][k] += 1.0;
}
for(i=0 ; i<gridCount ; i++)
for(j=0 ; j<64 ; j++)
localColorHistogram.add(round(((double)histogram[i][j]/(size/gridCount))));
histogram = null;
return localColorHistogram;
}
private int getGrid(double j, double width, double height, int gridCount){
double localWidth = width/gridCount;
double localHeight = height/gridCount;
int cell = (int)(j/width/localHeight)*gridCount + (int)((j % width)/localWidth);
return cell;
}