gpt4 book ai didi

python - 如何检查具有不同像素化的两个图像的相似性

转载 作者:太空宇宙 更新时间:2023-11-03 12:43:45 25 4
gpt4 key购买 nike

我正在运行一个 python 代码来检查 Quora 和 Twitter 用户个人资料照片的相似性,但是当图像相同时我没有得到肯定的结果。

这是比较两张图片的代码:

path_photo_quora= "/home/yousuf/Desktop/quora_photo.jpg"
path_photo_twitter="/home/yousuf/Desktop/twitter_photo.jpeg"
if open(path_photo_quora,"rb").read() == open(path_photo_twitter,"rb").read():
print('photos profile are identical')

尽管图像相同,但控制台不打印“照片配置文件相同”,我该怎么办?

最佳答案

您可以使用 imagehash比较相似图像的库。

from PIL import Image
import imagehash
hash0 = imagehash.average_hash(Image.open('quora_photo.jpg'))
hash1 = imagehash.average_hash(Image.open('twitter_photo.jpeg'))
cutoff = 5 # maximum bits that could be different between the hashes.

if hash0 - hash1 < cutoff:
print('images are similar')
else:
print('images are not similar')

由于图像不完全相同,会存在一些差异,因此我们使用具有可接受的最大差异的截止值。哈希对象之间的差异是翻转的位数。但即使调整图像大小、压缩、不同文件格式或调整对比度或颜色,imagehash 也能正常工作。

散列(或实际上是指纹)源自图像的 8x8 单色缩略图。但即使样本如此减少,相似性比较也能给出相当准确的结果。调整截止值以在可接受的误报和漏报之间找到平衡点。

对于 64 位哈希,差异为 0 表示哈希相同。相差 32 意味着完全没有相似性。相差 64 意味着一个哈希与另一个完全相反。

关于python - 如何检查具有不同像素化的两个图像的相似性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52736154/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com