【问题标题】:mysql hamming distance between two phash两个相位之间的mysql汉明距离
【发布时间】:2014-01-10 06:28:23
【问题描述】:

我有一个表 A,其中有一列“template_phash”。我存储从 400K 图像生成的 phash。

现在我拍摄一张随机图像并从该图像生成一个 phash。

现在我如何查询,以便我可以从表 A 中获取汉明距离差小于阈值的记录,例如 20。

我见过Hamming distance on binary strings in SQL,但想不通。

我想我发现我需要创建一个函数来实现这一点,但是如何实现呢?

我的两个 phash 都在 BigInt 中,例如:7641692061273169067

请帮我制作函数,以便我可以像这样查询

SELECT product_id, HAMMING_DISTANCE(phash1,  phash2) as hd 
FROM A 
WHERE hd < 20 ORDER BY hd ASC;

【问题讨论】:

    标签: mysql hamming-distance


    【解决方案1】:

    我发现汉明距离只是两个哈希之间不同位的计数。首先 xor 两个哈希然后得到二进制的计数:

    SELECT product_id, BIT_COUNT(phash1 ^ phash2) as hd from A ORDER BY hd ASC;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-09
      • 1970-01-01
      • 1970-01-01
      • 2019-06-07
      • 2017-05-18
      • 2020-12-18
      • 1970-01-01
      • 2015-03-21
      相关资源
      最近更新 更多