哈希+汉明距离进行相似性度量
哈希算法
aHash
-
定义
aHash 基于低频的均值哈希 :过于严格 更适合搜索缩略图
-
算法步骤
- 缩小图片尺寸
- 将其化为灰度图
- 计算灰度均值
- 根据与灰度均值的对比得到二值图
- 将二值图按序组合成哈希值(指纹)
-
代码实现(python)
def get_aHash(image_dir): from functools import reduce image = Image.open(image_dir).resize((8, 8), Image.ANTIALIAS).convert('L') avg = reduce((lambda x,y:x+y),image.getdata())/64 #aHash_value_binary = reduce(lambda x,y: str(x)+str(y),map(lambda i: 0 if i < avg else 1, image.getdata())) # 二进制表示 aHash_value_decimal = reduce(lambda x, y_z: x | (y_z[1] << y_z[0]),enumerate(