/ImageSimilarityCheck

通过感知算法,计算图片的相似度

Primary LanguagePython

图像相似度的检测

如何判断两张图片是否相似呢,这里我们使用一个快速算法,即感知哈希算法,来对图片进行检测。

感知哈希算法的原理其实就是,我们对每一张的图片生成一个类似于人类指纹的唯一标识,然后比较每张图片的标识的差别,差别越小,就越相似。

实现:

  1. 尺寸缩小(缩小为8*8的图片,去除图片的细节)

  2. 转化为灰度图 python实现的话,PIL库的话,有专门的函数实现了:

     # 将RGB转化为灰度的公式
     # L = R * 299/1000 + G * 587/1000 + B * 114/1000
     im.convert('L')
    
  3. 计算平均值,即64个灰度的平均值

  4. 比较像素的深度,大于平均值的标记为1,小于的标记为0

  5. 计算哈希值,获得哈希字符串

  6. 根据获得的哈希字符串,通过汉明距离来判断图片的相似程度,小于5的话,我们认为是相似