在我的应用程序中,我必须处理图像的单个像素。首先,我用这段代码给出灰度图像
private Bitmap BiancoNero(Bitmap originalBitmap) {
ColorMatrix colorMatrix = new ColorMatrix();
colorMatrix.setSaturation(0);
ColorMatrixColorFilter colorMatrixFilter = new ColorMatrixColorFilter(
colorMatrix);
Bitmap blackAndWhiteBitmap = originalBitmap.copy(
Bitmap.Config.ARGB_8888, true);
Paint paint = new Paint();
paint.setColorFilter(colorMatrixFilter);
Canvas canvas = new Canvas(blackAndWhiteBitmap);
canvas.drawBitmap(blackAndWhiteBitmap, 0, 0, paint);
return blackAndWhiteBitmap;
}
之后,使用以下控件绘制一个只有 0 和 1(0 白色,1 黑色)的矩阵
if(colore==-1)
matrice[i][j] = 0; //zero is for white
else if(colore == -16777216)
matrice[i][j] = 1; //black pixel
else
matrice[i][j] =0; //other shades of gray
我如何获得深灰色的细微差别?也就是说,当我们考虑白色 0% 和黑色 100% 时,我想找到我刚刚放入的所有高于 66% 的颜色 if> color = 5592405
(相当于 -16777216 / 3 )会起作用吗?