mysql汉明之间的两个篮球之间的距离
-
21-12-2019 - |
题
我有一个表a,它有一个列'template_phash'。我存储从400K图像生成的氏族。
现在我拍摄了一个随机图像并从该图像生成氏族。
现在我如何查询,以便我可以从表A中获取哈米明距离差异小于阈值的记录,比如为20。
我已经看过汉明距离在sql 中的二进制字符串上,但无法弄清楚。
我想我想知道我需要做出这个功能来实现这一目标,但是如何?我的两个篮球都在bigint中,例如:7641692061273169067
请帮助我做出这个功能,以便我可以像
一样查询SELECT product_id, HAMMING_DISTANCE(phash1, phash2) as hd
FROM A
WHERE hd < 20 ORDER BY hd ASC;
. 解决方案
我认为汉明距离只是两个散列之间不同比特的计数。第一个xor两个哈希,然后获取二进制文件的计数:
SELECT product_id, BIT_COUNT(phash1 ^ phash2) as hd from A ORDER BY hd ASC;
. 不隶属于 StackOverflow