# 正则化图像 def regularizeImage(img, size = (8, 8)): return img.resize(size).convert('L') # 计算hash值 def getHashCode(img, size = (8, 8)): pixel = [] for i in range(size[0]): for j in range(size[1]): pixel.append(img.getpixel((i, j))) mean = sum(pixel) / len(pixel) result = [] for i in pixel: if i > mean: result.append(1) else: result.append(0) return result # 比较hash值 def compHashCode(hc1, hc2): cnt = 0 for i, j in zip(hc1, hc2): if i == j: cnt += 1 return cnt # 计算平均哈希算法相似度 def calaHashSimilarity(img1, img2): img1 = regularizeImage(img1) img2 = regularizeImage(img2) hc1 = getHashCode(img1) hc2 = getHashCode(img2) return compHashCode(hc1, hc2) __all__ = ['calaHashSimilarity']