> Java > java지도 시간 > Java OpenCV 라이브러리를 사용하여 두 이미지를 비교하는 방법은 무엇입니까?

Java OpenCV 라이브러리를 사용하여 두 이미지를 비교하는 방법은 무엇입니까?

王林
풀어 주다: 2023-08-28 16:25:01
앞으로
1162명이 탐색했습니다.

두 개의 이미지 비교 -

  • Image.IO.read() 메서드를 사용하여 읽습니다.

  • 둘의 높이와 너비를 구하고 동일한지 확인하세요.

  • 픽셀 값을 가져오고 두 이미지의 RGB 값을 가져옵니다.

  • 이 두 이미지의 RGB 값 차이의 합을 구하세요.

    li>
  • 다음 공식을 사용하여 차이의 백분율을 계산합니다. -

Average = difference/weight*height*3;
Percentage = (Average/255)*100;
로그인 후 복사

Example

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);
      }
   }
}
로그인 후 복사

Enter 1

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

Enter 2

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

출력

Difference: 92.54901960784314
로그인 후 복사

위 내용은 Java OpenCV 라이브러리를 사용하여 두 이미지를 비교하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿