猿问

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

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

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

  2. 将所有图像与标准具逐像素进行比较。

什么方法会更快?比较所有像素或计算数据库中所有图像的哈希?


慕田峪9158850
浏览 141回答 1
1回答

三国纷争

这仅取决于您希望将图像与数据库进行比较的频率。如果您只需要这样做一次或两次,请进行逐像素比较。因为要创建所有哈希值,您还需要读取所有图像的所有像素一次。如果您经常需要这样做,请使用哈希方法。当然,您需要逐个像素地比较具有相同哈希值的图像,但这远远少于所有图像。(如果您的数据库不太大,您甚至可以将所有哈希值保存在 RAM 中)您不需要使用 md5。您甚至可以使用更简单(计算速度更快)的哈希函数。(您不需要像 md5 这样的加密散列函数所需的功能(即使 md5 不再安全))。您只是想减少要逐像素比较的图像数量。
随时随地看视频慕课网APP

相关分类

Java
我要回答