python在内置哈希和hashlib.md5()不同的结果?

时间:2016-06-17 10:40:55

标签: python image hash

我需要在数据集之间找到重复的图像。所以我尝试将它们哈希到桶中。使用内置的哈希函数我得到大约1000个重复,但使用hashlib.md5()我得到没有重复? 这是为什么? 我使用的数据集是noMNIST,从那里取出2个数据集,一个比另一个大得多,即大小200000和10000

这是我的代码:

# check for duplicates in the 2 dataset images

import hashlib
def checkDuplicates(data1, data2):
    data1.flags.writeable = False
    data2.flags.writeable = False
    duplicates = 0
    table = {}
    for i in range(0,len(data1),1):
        h = hashlib.md5(data1[i,:,:].data)
        table[h] = i
    for id,image in enumerate(data2):
        h = hashlib.md5(image.data)
        if (h in table) and (data1[table[h],:,:].data == image.data):
            duplicates += 1
    print (duplicates)
    return duplicates

如果我用hash()函数替换这个hashlib.md5(),它会给我1000-1200个重复!为什么会有这样的差异呢?

0 个答案:

没有答案