解决方案 »

  1.   

    手头紧,没分了,在这里再发一个问题
    Log如下:方法如下:private String HandleMessage(Bitmap bitmap){
    String data="";
    int x = 0;
    float k=0,z=0,t=0;
    int[] mArrayColors=new int[65535];
    byte R,G,B,gray;
    //图像的宽高
    int maxWidth=bitmap.getWidth();
    int maxHeight=bitmap.getHeight();
    for(int i=0;i<maxHeight;i++){
    for(int j=0;j<maxWidth;j++){
    //基于坐标取出相对应的RGB
        int rgb=bitmap.getPixel(i, j);
        mArrayColors[x]=rgb;
        R = (byte)((rgb & 0xff0000) >> 16);
            G = (byte)((rgb & 0xff00) >> 8);
            B = (byte)(rgb & 0xff);
            if (B<110) t++;
    gray =(byte) (R*0.5 + G*0.39 +B*0.11);
    if(gray>72){
    bitmap.setPixel(i,j,Color.WHITE);
    mArrayColors[x]=bitmap.getPixel(i, j);
    k++;
    }
    else{
    bitmap.setPixel(i, j,Color.BLACK );
    mArrayColors[x]=bitmap.getPixel(i, j);
    }
    x++;
    }
    z = (k)/t;
    //处理完后重新加载处理后的图片
    Bitmap.createBitmap(mArrayColors,0,0, null);
    data="玉米发霉率为:"+z+"%";
    //处理完后赋予空值!
    mArrayColors=null;
        }
    return data;