您的位置:首页 > 其它

图片相似度比较--算法

2016-07-10 21:38 453 查看
最近由于要租房,所以下载了58同城的APP,在找个人房源过程中发现,58同城会把图片相似的发帖纪录被标志出来,并警告用户此信息可能是假的。这里不讨论58同城的这方面做得人性化。而是就图片相似度算法来做一下分析。
百度和谷歌都推出了“以图搜图”的功能,至今都没用过,也是挺无语的……

最近翻阅了这方面的资料,属“感知哈希算法”最为成熟,“感知哈希算法”的作用是对每张图片生成一个指纹字符串,然后比较不同图片的指纹。结果越接近,说明图片越相似。下面就简单介绍一下此算法
缩小图片尺寸

将图片缩小到8*8的尺寸,总共64个像素。这一步的作用是去除图片的细节,只保留结构、明暗等基本信息,摒弃不同尺寸、比例带来的图片差异。






简化色彩

将缩小后的图片,转为64级灰度。也就是说,所有像素点总共只有64中颜色

计算平均值

计算所有64个像素的灰度平均值

比较像素灰度

将每个像素的灰度,与平局值进行比较。大于或等于平局值,记为1;小于平均值记为0

计算哈希值

将上一步比较结果,组合在一起,就构成了一个64位的整数,这就是这张图片的指纹。组合的次序并不重要,只要保证所有图片都采用同样的次序就好了。



=

= 8f373714acfcf4d0
得到指纹以后,就可以对比不同的图片,看看64位中有多少是不一样的。在理论上,这等同于计算汉明距离。如果不相同的数据位超过5位,就说明两张图片很相似;如果结果大于10,就说明这是不同的图片。
具体详情请查看博客:图片相似度算法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: