for (int i=0; i < (pic_width/16); ++i) {
for (int j=0; j < (pic_height/16); ++j) {
patch = cropped_img.get(i*16, j*16, 16, 16);
}
}
第二步,每个小方块内共有256个像素,将每个像素点的灰度值,存入一个数组。
for (int k=0; k < patch.pixels.length; ++k) {
x[k] = rgb2gray(patch.pixels[k]);
}
int rgb2gray(int argb) {
int _alpha = (argb >> 24) & 0xFF;
int _red = (argb >> 16) & 0xFF;
int _green = (argb >> 8 ) & 0xFF;
int _blue = (argb) & 0xFF;
return int(0.3*_red + 0.59*_green + 0.11*_blue);
}
第三步,计算该数组的平均值,并用1-6之间的一个整数来表示。
<blockquote> int dice_num = six_step_gray(mean(x));
int mean(int[] x) {
float m = 0;
for (int i=0; i < x.length; ++i) {
m += x;
}
m = m/x.length;
return int(m);
}
int six_step_gray(int x) {