我需要将数据库中的许多图像与一张图像进行比较,如果相等,则将其标记出来。我有两个想法可以解决这个问题:
哪种方法会更快?比较所有像素还是计算数据库中所有图像的哈希值?
答案 0 :(得分:0)
这仅取决于您想要将图像与数据库进行比较的频率。
如果只需要执行一次或两次,请进行像素间比较。 因为要创建所有哈希值,您还需要读取所有图像的所有像素一次。
如果您经常需要这样做,请使用哈希方法。当然,您需要逐个像素比较具有相同哈希值的图像,但这些图像远小于所有图像。 (如果您的数据库不太大,您甚至可以将所有哈希值保留在RAM中)
您不需要使用md5。您甚至可以使用更简单(且计算速度更快)的哈希函数。 (您不需要像md5这样的加密哈希函数所需的功能(即使md5不再安全了))。 您只想减少图像的数量以逐像素进行比较。