タイプ TYPE_INT_BGR の BufferedImage があります。2 つの画像間の「距離」を計算するには、別の BufferedImage とピクセル単位で比較する必要があります。動作するものがありますが、遅いです。「参照」画像からピクセルを取得し、次のように RGB バイトに分割します。
int pixel = referenceImage.getRGB(col, row);
int red = (pixel >> 16) & 0xff;
int green = (pixel >> 8) & 0xff;
int blue = (pixel) & 0xff;
r/g/b 値を候補画像の対応するピクセルと比較し、差の二乗を合計します。
この種の比較を行うためのより高速な方法はありますか? JRE ソースを覗いてみると、BufferedImage.getRGB() が実際にはラスターの構成要素の RGB 値を OR 演算していることがわかります。
私はそれを直接やってみるつもりですが、見逃したかもしれないJavaまたはサードパーティのAPIを介して、これを行うより良い方法がないのではないかと思います.