感知哈希的原理是基于人类视觉系统的特点,将图像转换为灰度图像,并将其缩小到8×8的大小,然后计算每个像素的平均值,并将其与整个图像的平均值进行比较,将大于平均值的像素设置为1,小于平均值的像素设置为0,将这些二进制值组成一个64位的哈希值。
3中,可以使用Pillow库来实现感知哈希。以下是一个简单的示例代码
“`portage
age, hash_size=8)ageagevertage.NTILIS)age.getdata())ce = []ge(hash_size)ge(hash_size)age.getpixel((col, row))age.getpixel((col + 1, row))ced(pixel_left >pixel_right)al_value = 0g = []dexumeratece)
if valuealdex % 8)dex % 8) == 7gdal_value)[2].rjust(2, ‘0’))al_value = 0g)
age1ageage1.jpg’)age2ageage2.jpg’)
age1)age2)
if hash1 == hash2tagese’)
elsetagest’)
在这个示例中,大家使用Pillow库来打开两张图片,并使用dhash()函数来生成它们的哈希值。然后,大家将这些哈希值进行比较,以判断这两张图片是否相同。
3感知哈希是一种非常有用的技术,可以在很多应用场景中发挥作用。如果你需要实现图片去重或者图片搜索,不妨考虑使用这种技术。