用感知哈希算法写了个计算 hash 值的函数,然后每张图片对应一个 hash 指纹,在上传比对的时候,除了一口气获取所有图片的 hash,然后再挨个每位数进行比对以外,有什么其他方法吗?这样的话,效率好像有点差。毕竟 hash 有 64 位,还要遍历 64 次看看是否相似。
     1 
                    
                    tux      2018-05-30 14:27:16 +08:00 
                    
                    原来看过一个是把任意图片压缩成 64*64 的大小,然后对比每个点像素,差值最小的一般就是最接近的或者一样的 
                 | 
            
     2 
                    
                    Kagari      2018-05-30 15:10:00 +08:00 via Android 
                    
                    
                 | 
            
     3 
                    
                    90safe   OP  | 
            
     4 
                    
                    Kagari      2018-05-30 18:20:30 +08:00 via Android 
                    
                    @90safe 我觉得 3w 条扔到数据库里,然后给定数据输出汉明距离大于 x 的速度不慢啊。要不你转成 2 进制发现不相同的值多于 x 位就跳过咯 
                 | 
            
     5 
                    
                    dex2jar      2018-05-30 18:22:43 +08:00 
                    
                    那这个和图片没关系吧。。 
                然后为啥 64 位的 hash 得循环 64 次。。  | 
            
     6 
                    
                    chenuu      2018-05-30 18:36:18 +08:00 
                    
                    用 map 这种结构? 
                 | 
            
     7 
                    
                    tux      2018-05-30 18:43:55 +08:00 
                    
                    ... 你 hash 不索引的吗? 
                 |