使用python怎么比较2张图片的相似度
导读:本文共2728.5字符,通常情况下阅读需要9分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要:使用python怎么比较2张图片的相似度?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。具体如下:#!/usr/bin/python#-*-coding:UTF-8-*-importcv2importnumpyasnp#均值哈希算法defaHash(img):#缩放为8*8img=cv2.resize(i... ...
目录
(为您整理了一些要点),点击可以直达。具体如下:
讲解
相似图像搜索的哈希算法有三种:
均值哈希算法
差值哈希算法
感知哈希算法
均值哈希算法
步骤
缩放:图片缩放为8*8,保留结构,出去细节。
灰度化:转换为256阶灰度图。
求平均值:计算灰度图所有像素的平均值。
比较:像素值大于平均值记作1,相反记作0,总共64位。
生成hash:将上述步骤生成的1和0按顺序组合起来既是图片的指纹(hash)。顺序不固定。但是比较时候必须是相同的顺序。
对比指纹:将两幅图的指纹对比,计算汉明距离,即两个64位的hash值有多少位是不一样的,不相同位数越少,图片越相似。
代码实现:
差值哈希算法
差值哈希算法前期和后期基本相同,只有中间比较hash有变化。
步骤
1. 缩放:图片缩放为8*9,保留结构,出去细节。
2. 灰度化:转换为256阶灰度图。
3. 求平均值:计算灰度图所有像素的平均值。
4. 比较:像素值大于后一个像素值记作1,相反记作0。本行不与下一行对比,每行9个像素,八个差值,有8行,总共64位
5. 生成hash:将上述步骤生成的1和0按顺序组合起来既是图片的指纹(hash)。顺序不固定。但是比较时候必须是相同的顺序。
6. 对比指纹:将两幅图的指纹对比,计算汉明距离,即两个64位的hash值有多少位是不一样的,不相同位数越少,图片越相似。
感知哈希算法
感知哈希算法可以参考
相似性︱python+opencv实现pHash算法+hamming距离(simhash)(三)
讲的很详细了。
Hash值对比
由于返回值为str字符串,所以直接遍历字符串进行比对。
使用python怎么比较2张图片的相似度的详细内容,希望对您有所帮助,信息来源于网络。