对不起,我的英语不好,我有一个包含照片散列的小型数据库,当我尝试找到与以下类似的照片时:
为其计算了以下哈希:“0f3f2764ecc482c2”,使用方法 average_hash()
imagehash.average_hash(Image.open(imagePath))
系统发现了大量的碰撞,下面是被识别为完全相同的照片示例:
我存储照片哈希的表:
CREATE TABLE IF NOT EXISTS photos(id_photo BIGINT PRIMARY KEY, photo_hash TEXT, FOREIGN KEY (id_photo) REFERENCES users (id));
添加哈希:
cur.execute('''INSERT INTO photos(id_photo, photo_hash) VALUES(%s, %s)''', id, str(result_image_recognition['photo_hash'])])
SQL Query 通过它计算我的哈希和存储的哈希之间的欧几里得距离:
SELECT id_photo, BIT_COUNT(photo_hash ^ '0f3f2764ecc482c2') FROM photos;
照片表包含 7889 张照片,其中 959 张被此查询错误地确定为完全相同(欧几里得距离为 0)。大约一个星期我无法解决这个问题,请有人帮助我。