将许多图像与一张图像进行比较

时间:2018-11-13 11:19:29

标签: java image algorithm image-processing

我需要将数据库中的许多图像与一张图像进行比较,如果相等,则将其标记出来。我有两个想法可以解决这个问题:

  1. 获取两个图像(MD5)的哈希并比较其哈希。这种方法只允许一次计算标准具图像的哈希值。
  2. 比较所有具有标准具逐像素的图像。

哪种方法会更快?比较所有像素还是计算数据库中所有图像的哈希值?

1 个答案:

答案 0 :(得分:0)

这仅取决于您想要将图像与数据库进行比较的频率。

如果只需要执行一次或两次,请进行像素间比较。 因为要创建所有哈希值,您还需要读取所有图像的所有像素一次。

如果您经常需要这样做,请使用哈希方法。当然,您需要逐个像素比较具有相同哈希值的图像,但这些图像远小于所有图像。 (如果您的数据库不太大,您甚至可以将所有哈希值保留在RAM中)

您不需要使用md5。您甚至可以使用更简单(且计算速度更快)的哈希函数。 (您不需要像md5这样的加密哈希函数所需的功能(即使md5不再安全了))。 您只想减少图像的数量以逐像素进行比较。