Rumah > Java > javaTutorial > Bagaimana untuk membandingkan dua imej menggunakan perpustakaan OpenCV Java?

Bagaimana untuk membandingkan dua imej menggunakan perpustakaan OpenCV Java?

王林
Lepaskan: 2023-08-28 16:25:01
ke hadapan
1161 orang telah melayarinya

Bandingkan dua imej -

  • Baca menggunakan kaedah Image.IO.read() .

  • Dapatkan ketinggian dan lebar kedua-duanya, pastikan ia sama.

  • Dapatkan nilai piksel dan dapatkan nilai RGB bagi kedua-dua imej.

  • Dapatkan jumlah perbezaan antara nilai RGB kedua-dua imej ini.

    li>
  • Kira peratusan perbezaan menggunakan formula berikut -

Average = difference/weight*height*3;
Percentage = (Average/255)*100;
Salin selepas log masuk

Contoh

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);
      }
   }
}
Salin selepas log masuk

Masukkan 1

Enter 1如何使用Java OpenCV库比较两个图像?

如何使用Java OpenCV库比较两个图像? Output

Difference: 92.54901960784314
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk membandingkan dua imej menggunakan perpustakaan OpenCV Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan