当前位置:   article > 正文

使用python进行图片相似度对比_python 图片相似度

python 图片相似度

Python提供了一些库和工具可以用于图片的相似度比对。下面介绍两种常用的方法:

1、感知哈希(Perceptual Hashing):这种方法通过计算图像的哈希值来表示图像的特征,从而进行相似度比对。

    常用库:imagehash 和 phash

    具体代码如下:

  1. from PIL import Image
  2. import imagehash
  3. # 生成图像的感知哈希
  4. hash1 = imagehash.average_hash(Image.open('image1.jpg'))
  5. hash2 = imagehash.average_hash(Image.open('image2.jpg'))
  6. # 计算相似度
  7. similarity = 1 - (hash1 - hash2) / len(hash1.hash) # 范围为0到1,值越大表示相似度越高
  8. print(similarity)

2、结构相似性(Structural Similarity):这种方法通过比较图像的结构、纹理和亮度等特征来衡量相似度。

    常用库:scikit-image

    具体代码如下:

  1. from PIL import Image
  2. from skimage import metrics
  3. from skimage.transform import resize
  4. # 打开并调整图像大小
  5. image1 = Image.open('image1.jpg')
  6. image2 = Image.open('image2.jpg')
  7. image1 = image1.resize((500, 500)) # 调整图像1的大小为500x500
  8. image2 = image2.resize((500, 500)) # 调整图像2的大小为500x500
  9. # 将图像转换为灰度图像
  10. image1_gray = image1.convert("L")
  11. image2_gray = image2.convert("L")
  12. # 将图像转换为NumPy数组
  13. image1_array = np.array(image1_gray)
  14. image2_array = np.array(image2_gray)
  15. # 计算结构相似性指数(SSIM)
  16. similarity = metrics.structural_similarity(image1_array, image2_array)
  17. # 将相似性指数转换为相似度(范围0到1,值越大表示相似度越高)
  18. similarity = (similarity + 1) / 2
  19. print(similarity)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/420493?site
推荐阅读
相关标签
  

闽ICP备14008679号