java将多个图像与一个图像进行比较
我需要将数据库中的许多图像与一个图像进行比较,并标记它们是否相等。我有两个解决这个问题的办法:
- 获取两个图像的哈希值(MD5)并比较它们的哈希值。该方法只允许计算标准具图像的哈希值一次李>
- 将所有图像与标准具逐像素进行比较李>
什么方法会更快?比较所有像素或计算数据库中所有图像的哈希
你可以在下面搜索框中键入要查询的问题!
我需要将数据库中的许多图像与一个图像进行比较,并标记它们是否相等。我有两个解决这个问题的办法:
什么方法会更快?比较所有像素或计算数据库中所有图像的哈希
# 1 楼答案
这仅仅取决于您希望将图像与数据库进行比较的频率
如果你只需要做一次或两次,可以进行像素对像素的比较。 因为要创建所有散列值,还需要一次性读取所有图像的所有像素
如果您经常需要这样做,可以使用哈希方法。当然,你需要逐像素地比较具有相同散列值的图像,但这远远小于所有图像。(如果你的数据库不是太大,你甚至可以把所有的散列值都保存在RAM中)
您不需要使用md5。您甚至可以使用更简单(计算速度更快)的散列函数。(您不需要像md5这样的加密哈希函数所需的功能(即使md5不再安全)。 你只需要减少图像的数量来逐像素进行比较