Javaでフォトモザイクを書いています。このためには、2 つの画像の RGB を計算して比較し、ターゲット画像を最も適切なタイル画像に置き換える必要があります。最も適切とは、正確な RGB 一致が見つからない場合、エラーd
が許容されることを意味します。
次のコードを使用して RGB を計算しています。
protected static int calcRGBForEachFile(String filePath) throws IOException {
int RGBTotal = 0;
try{
BufferedImage tile = ImageIO.read(new File(filePath));
tileWidth = tile.getWidth();
tileHeight = tile.getHeight();
for(int i=0; i<tileWidth; i++){
for(int j=0; j<tileHeight; j++){
RGBTotal = getPixelData(tile.getRGB(i,j));
}
}
}
catch(IOException e){
System.out.println(e);
}
return RGBTotal;
}
protected static void getPixelData(int rgb) {
int red = (rgb >> 16) & 0xff;
int green = (rgb >> 8) & 0xff;
int blue = (rgb) & 0xff;
}
それが行うことは、指定されたパスから画像を取得し、その RGB を計算して に格納することHashMap
です。
RGB を計算し、2 つの画像を比較してより良い結果を得る方法はありますか?
編集:いくつかのコメントに基づいて質問を編集しました。