1月 31, 2022
Java OpenCVライブラリを使用して2つの画像を比較する方法は?
二つの画像を比較するには−
-
Image.IO.read()メソッドを使用して両方を読み取ります。
-
両方の高さと幅を取得して、それらが等しいことを確認します。
-
ピクセル値を取得し、両方の画像のRGB値を取得します。
-
これら2つの画像のRGB値の差の合計を取得します。
-
次の式を使用して、差の割合を計算します−
Average = difference/weight*height*3;Percentage = (Average/255)*100;
例
javaをインポートします。awt.色;インポートjava。awt.画像...Bufferedimage;javaxをインポートします。イマージュ-イオImageIO;import java.io.File;public class ComparingImages{public static void main(String args)throws Exception{BufferedImage img1=ImageIO.読み取り(新しいファイル("D:\\Images\\test1.....jpg"));BufferedImage img2=ImageIO.読み取り(新しいファイル("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)){システム。出ろprintln("両方の画像は同じdimwnsionsを持つ必要があります");}else{long diff=0;for(int j=0;j<h1;j++){for(int i=0;i<w1;i++){//ピクセルのRGB値を取得する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();//二つの画像のRGB値の差の合計long data=Math.abs(r1-r2)+数学.abs(g1-g2)+数学.ダブル平均=差分/(w1*h1*3);ダブルパーセント=(平均/255)*100;システム。出ろprintln("差:"+パーセンテージ); } }}
入力1
入力2
出力
Difference: 92.54901960784314
09-Aprに公開-2020 07:25:58
- 関連する質問&回答
- OpenCV Javaライブラリを使用して2つの画像のキーポイントを一致させるにはどうすればよいですか?
- OpenCV Javaを使用して画像にブレンドする方法は?
- Java OpenCVを使用して2つのイメージに対してビット単位のAnd演算を実行する方法は?Java OpenCVを使用して2つのイメージに対してビットごとのXOR演算を実行する方法は?
- Java OpenCVを使用して2つのイメージに対してビット単位のOR演算を実行する方法は?Java OpenCVライブラリを使用して画像の輪郭を見つけるにはどうすればよいですか?
- Java OpenCVライブラリを使用して画像を反転するには?Java OpenCVライブラリを使用して画像の輪郭を描画するには?
- Java OpenCVライブラリを使用して画像を読み取るには?
- Java OpenCVライブラリを使用して画像を記述するには?
- Java OpenCVライブラリを使用してミラーイメージを作成するには?Java OpenCVを使用して画像に対してビット単位のNot演算を実行するにはどうすればよいですか?Java OpenCVライブラリを使用してRGB画像をHSVに変換するにはどうすればよいですか?JAVA OpenCVライブラリを使用してHSVを色付き画像に変換するにはどうすればよいですか?JAVA OpenCVライブラリを使用してHSVをBGRイメージに変換するにはどうすればよいですか?