用于图像比较的欧几里德算法

时间:2010-10-28 11:43:25

标签: java euclidean-distance image-comparison

我将开发一个用于java的图像比较的应用程序。为此,我选择了欧几里德算法。此应用程序涉及2张图像。 1.实际图像 2.部分实际图像。

算法应该将图像的一部分与实际图像进行比较。如果零件存在于实际图像中,则应返回一个值作为匹配成功。

任何人都可以给我算法步骤吗? java上的代码将不胜感激..!

1 个答案:

答案 0 :(得分:0)

这是一个相对简单的想法,有些部分是故意遗漏的,因为问题有点像家庭作业。

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.
}