Android java percentage bitmap pixel difference between two images

Мне нужно вычислить разницу в пикселях между двумя изображениями в java на Android. Проблема в том, что у меня есть код, который возвращает неточный результат.

Например, у меня есть 3 очень похожие картинки, но при сравнении каждой из них возвращается существенно разный результат: pic1 vs pic2 = 1.71%; pic1 vs pic3 = 0.0045%; pic2 vs pic3 = 36.7%.

BitmapFactory.Options opt = new BitmapFactory.Options();
    opt.inPreferredConfig = Bitmap.Config.ARGB_8888;
    opt.inSampleSize = 5;
    Bitmap mBitmap1 = BitmapFactory.decodeFile("/sdcard/pic1.jpg", opt);
    Bitmap mBitmap2 = BitmapFactory.decodeFile("/sdcard/pic2.jpg", opt);

    int intColor1 = 0;
    int intColor2 = 0;
    for (int x = 0; x < mBitmap1.getWidth(); x++) {
       for (int y = 0; y < mBitmap1.getHeight(); y++) {
            intColor1 = mBitmap1.getPixel(x, y);
            intColor2 = mBitmap2.getPixel(x, y); 
            //System.out.print(" ("+ x + ","+ y +") c:" + intColor1);   
       }
       String resultString = String.valueOf(intColor1);

    }
    //now calculate percentage difference
    double razlika = (((double)intColor1 - intColor2)/intColor2)*100;

}

Я думаю, что мне нужно сравнить каждый пиксель для обоих изображений (intColor1(x,y) vs intColor2(x,y)), но как я могу это сделать, а затем вычислить процентную разницу?

5
задан animuson 4 January 2013 в 07:43
поделиться