code来源:https://github.com/JohannesBuchner/imagehash
外文原文:https://fullstackml.com/wavelet-image-hash-in-python-3504fdd282b5
可以直接pip:
pip install imagehash
1 perception hashing
感知哈希,不同于aHash,但首先它确实是离散余弦变换和频域。
主函数:def phash(image, hash_size=8, highfreq_factor=4):
两个参数,一起决定了图片resize的大小,最适合的才最好,按照公式:
img_size = hash_size * highfreq_factor
hash_size代表最终返回hash数值长度
highfreq_factor,代表resize的尺度
案例:
highfreq_factor = 1
hash_size = 8
img_size = hash_size * highfreq_factor
hash1 = imagehash.phash(Image.open('1_1.jpg'),hash_size=hash_size,highfreq_factor=highfreq_factor)
print(hash1)
# > 354adab5054af0b7
hash2 = imagehash.phash(Image.open('5_1.jpg'),hash_size=ha