需求: 检查相似图片,在第一次检查几十万的图片后,记录每个图片的 md5 数值,之后检查图片是否相似直接对比已经检查过的 md5 数值就可以了,并记录这个新检查的 md5 数值。 讲的有点绕口,但意思还是很明确的!
关键是后来检查的图片不需要在从新检查所有图片一次,只需要对比下已经检查过的 md5 数值或者其他就可以了。
1
UnisandK 2016-09-23 15:16:00 +08:00
md5 是肯定不行的。。
|
2
zhiyuan91 2016-09-23 15:24:20 +08:00 2
计算 64 位 simhash ,海明距离在 3 以为的可以认为相似。图片可以预处理一下。
|
4
xujinkai 2016-09-23 15:25:37 +08:00
必然不能是 MD5 , MD5 的特点是数据差一点, MD5 值就变化非常大。
查图片用的算法生成的值,效果是图片差的不大,值也差的不大,这样值越接近说明图片越相似。 |
5
Izual_Yang 2016-09-23 19:52:15 +08:00
首先,你如果用 md5 ,那就只是一般的文件查重而已,就没必要特意说明是用来检查图片——因为只有每一个字节都相同的图片才是 md5 相同,否则再怎么相似也没用。
其次,如果你不重新检查所有图片一次,你怎么知道以前的文件还在不在,有没有修改过? |
6
lun10439547 OP @UnisandK
@zhiyuan91 @xujinkai @Izual_Yang 确实如你们所说的,靠 md5 来分辨其实我也可以用,图片来源里固定的几个网站,主要分辨我到底下载过没,当然最好还是能忽略分辨率与裁剪所带来的 md5 值变化。。。。 |
7
Izual_Yang 2016-09-23 22:54:40 +08:00 via Android
|