Comparez deux images -
Lisez-les en utilisant la méthode Image.IO.read() .
Obtenez la hauteur et la largeur des deux, assurez-vous qu'elles sont égales.
Obtenez la valeur du pixel et obtenez la valeur RVB des deux images.
Obtenez la somme des différences entre les valeurs RVB de ces deux images.
li>Calculez le pourcentage de différence en utilisant la formule suivante -
Average = difference/weight*height*3; Percentage = (Average/255)*100;
import java.awt.Color; import java.awt.image.BufferedImage; import javax.imageio.ImageIO; import java.io.File; public class ComparingImages { public static void main(String[] args) throws Exception { BufferedImage img1 = ImageIO.read(new File("D:\Images\test1.jpg")); BufferedImage img2 = ImageIO.read(new File("D:\Images\test2.jpg")); int w1 = img1.getWidth(); int w2 = img2.getWidth(); int h1 = img1.getHeight(); int h2 = img2.getHeight(); if ((w1!=w2)||(h1!=h2)) { System.out.println("Both images should have same dimwnsions"); } else { long diff = 0; for (int j = 0; j < h1; j++) { for (int i = 0; i < w1; i++) { //Getting the RGB values of a pixel int pixel1 = img1.getRGB(i, j); Color color1 = new Color(pixel1, true); int r1 = color1.getRed(); int g1 = color1.getGreen(); int b1 = color1.getBlue(); int pixel2 = img2.getRGB(i, j); Color color2 = new Color(pixel2, true); int r2 = color2.getRed(); int g2 = color2.getGreen(); int b2= color2.getBlue(); //sum of differences of RGB values of the two images long data = Math.abs(r1-r2)+Math.abs(g1-g2)+ Math.abs(b1-b2); diff = diff+data; } } double avg = diff/(w1*h1*3); double percentage = (avg/255)*100; System.out.println("Difference: "+percentage); } } }
Difference: 92.54901960784314
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!