Markieren Sie Unterschiede zwischen den Bildern

Es ist dieses Bild-Vergleich code soll ich ändern, markieren/Punkt heraus, den Unterschied zwischen zwei Bildern. Gibt es eine Möglichkeit, diesen code ändern, so markieren Sie die Unterschiede in Bildern. Wenn nicht, irgendeine Idee, wie es gehen würde sehr geschätzt werden.

 int width1 = img1.getWidth(null);
            int width2 = img2.getWidth(null);
            int height1 = img1.getHeight(null);
            int height2 = img2.getHeight(null);
            if ((width1 != width2) || (height1 != height2)) {
                System.err.println("Error: Images dimensions mismatch");
                System.exit(1);
            }
            long diff = 0;
            for (int i = 0; i < height1; i++) {
                for (int j = 0; j < width1; j++) {
                    int rgb1 = img1.getRGB(j, i);
                    int rgb2 = img2.getRGB(j, i);
                    int r1 = (rgb1 >> 16) & 0xff;
                    int g1 = (rgb1 >> 8) & 0xff;
                    int b1 = (rgb1) & 0xff;
                    int r2 = (rgb2 >> 16) & 0xff;
                    int g2 = (rgb2 >> 8) & 0xff;
                    int b2 = (rgb2) & 0xff;
                    diff += Math.abs(r1 - r2);
                    diff += Math.abs(g1 - g2);
                    diff += Math.abs(b1 - b2);
                }
            }
            double n = width1 * height1 * 3;
            double p = diff / n / 255.0;
            return (p * 100.0);
  • Ich bin davon ausgegangen, dass Sie eine BufferedImage Klasse? Dieser edit ist ziemlich einfach. Alles, was Sie würde tun müssen, ist legen Sie jeden pixel in Ihrem Bild, um die Differenz. Ich Schreibe eine Antwort für Sie.
InformationsquelleAutor user3078335 | 2014-07-29
Schreibe einen Kommentar