栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

PIL图像的简单哈希

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PIL图像的简单哈希

我猜您的目标是在Python中执行图像哈希处理(与经典哈希处理有很大不同,因为图像的字节表示形式取决于格式,分辨率等)。

图像哈希技术之一是 平均哈希 。确保这不是100%准确的,但在大多数情况下都能正常工作。


首先,我们通过减小图像的大小和颜色来简化图像,降低图像的复杂性极大地有助于其他图像之间的比较精度:

缩小尺寸:

img = img.resize((10, 10), Image.ANTIALIAS)

减少颜色:

img = img.convert("L")

然后,我们找到图像的平均像素值(这显然是平均哈希的主要组成部分之一):

pixel_data = list(img.getdata())avg_pixel = sum(pixel_data)/len(pixel_data)

最终计算出哈希值,然后将图像中的每个像素与平均像素值进行比较。如果pixel大于或等于平均像素,则得到1,否则为0。然后将这些位转换为以16为底的表示形式:

bits = "".join(['1' if (px >= avg_pixel) else '0' for px in pixel_data])hex_representation = str(hex(int(bits, 2)))[2:][::-1].upper()

如果要将此图像与其他图像进行比较,请执行上述操作,然后找到 平均哈希
图像的十六进制表示形式之间的相似性。您可以使用诸如汉明距离之类的简单算法,也可以使用更复杂的算法,例如Levenshtein距离,Ratcliff
/
Obershelp模式识别

(SequenceMatcher),余弦相似度等。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/646840.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号