Javaで画像比較するためのアプリケーションを開発します。このために、私はユークリッドの互除法を選択しました。このアプリケーションには2つの画像が含まれます。1.実際の画像2.実際の画像の一部。
アルゴリズムは、画像の一部を実際の画像と比較する必要があります。パーツが実際の画像に存在する場合、一致する成功として1つの値を返す必要があります。
誰かが私にアルゴリズムのステップを教えてもらえますか?Javaのコードをいただければ幸いです。
Javaで画像比較するためのアプリケーションを開発します。このために、私はユークリッドの互除法を選択しました。このアプリケーションには2つの画像が含まれます。1.実際の画像2.実際の画像の一部。
アルゴリズムは、画像の一部を実際の画像と比較する必要があります。パーツが実際の画像に存在する場合、一致する成功として1つの値を返す必要があります。
誰かが私にアルゴリズムのステップを教えてもらえますか?Javaのコードをいただければ幸いです。
これは比較的単純なアイデアですが、質問は宿題のようなにおいがするため、意図的に一部を省略しています。
public static boolean contains(Image large, Image small) {
final int largeWidth = large.getWidth(), largeHeight = large.getHeight();
final int smallWidth = small.getWidth(), smallHeight = small.getHeight();
if (smallWidth > largeWidth || smallHeight > largeHeight) {
return false;
}
for (int x = 0; x < largeWidth - smallWidth; x++) {
for (int y = 0; y < largeHeight - smallHeight; y++) {
if (subImageEquals(large, x, y, small)) {
return true;
}
}
}
return false;
}
private static boolean subImageEquals(Image large, int x, int y, Image small) {
// TODO: checks whether all pixels starting at (x, y) match
// those of the small image.
}