有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

  1. 获取两个图像的哈希值(MD5)并比较它们的哈希值。该方法只允许计算标准具图像的哈希值一次
  2. 将所有图像与标准具逐像素进行比较

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


共 (1) 个答案

  1. # 1 楼答案

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

    如果你只需要做一次或两次,可以进行像素对像素的比较。 因为要创建所有散列值,还需要一次性读取所有图像的所有像素

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

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