0

我需要将图像与各种图像进行比较,如果它们相等则做一些事情(我不需要任何图像识别,我只需要比较两个 100% 完全相等的图像),好吧,通过在 stackoverflow 上搜索我得出结论我最好的选择是将我的图像编码为base64,然后将字符串与另一个字符串进行比较。

我需要将一张图片与另一张图片进行比较,然后是另一张图片,然后是另一张图片等等,只要找到完美匹配就停止。我的计划是将每64个字符串存储在一个数组中,然后比较每个项目的目标图像,这个计划很好,理论上,但是让我担心的是,字符串的长度是852754个字符,这意味着它会非常,非常慢。有没有其他方法可以做到这一点?

我什至愿意将图像保存在我的计算机中,如果这有帮助的话,大约有 200 或 300 个,并没有那么多。

4

3 回答 3

1

这可以通过使用类似MD5 implementation的方式对字符串进行哈希处理(当然,考虑到 852754 长度的字符串,这里的熵可能是一个问题) 。您还可以想象使用应该更快的校验和(类似于crc32 函数)。

使用您最喜欢的方法生成散列,并在生成一对之后,简单地比较散列(这会快得多)。

于 2013-02-16T23:40:21.253 回答
0

这就是我们有单向哈希算法的原因!您应该找到一个库来散列图像数据(例如 md5)。您可以轻松存储这些并快速比较。

当你有一个 md5 匹配时,你可以比较数据以确定(有可能但不太可能有冲突给出错误匹配)。

于 2013-02-16T23:41:01.730 回答
0

如果我很好地理解了您的问题:您可以在元素上使用getBase64Image()方法var myimage = new Image()

于 2013-02-16T23:41:56.413 回答