感知哈希算法是哈希算法的一种,主要用来依图搜图的,主要有均值哈希和pHash两种
均值哈希算法
第一步:缩小图像尺寸
最快速的去除高频和细节,只保留结构明暗的方法
将图片缩小到8x8的尺寸,总共64个像素。摒弃不同尺寸、比例带来的图片差异
第二步:简化色彩
将缩小后的图像简化为64级灰度。也就是所有像素点总共有64种颜色。
第三步:计算均值
计算所有64个像素点的灰度平均值
第四步:计算哈希值
比较每个像素的灰度值与均值,大于均值则记录哈希值为‘1’,小于均值则记录哈希值为‘0’。
第五步:计算汉明距离
(汉明距离既是两个长度相同的字符串在相同的位置不同字符的个数)
计算两个图像哈希值的汉明距离d,则两图片相似度为(64 - d)/64。一般认为汉明距离小于5则认为两张图片相似。
pHash算法