我如何从opencv sift描述符中获取lsh值

时间:2016-11-12 14:17:55

标签: python opencv

我想从opencv sift描述符中获取lsh哈希值

首先,我得到下面的筛选描述符

def getSiftDescriptor(imagepath):
    img  = cv2.imread(imagepath)
    gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 
    sift = cv2.xfeatures2d.SIFT_create()
    kp, des = sift.detectAndCompute(img,None)
    return des.reshape(1,-1)

第二,我使用NearPy包(https://github.com/pixelogik/NearPy)计算lsh值,如下所示

rbp = RandomBinaryProjections('default', 100)
def getLsh(descriptor):
    rbp.reset(len(descriptor.reshape(1,-1)[0]))
    return rbp.hash_vector(descriptor.reshape(1,-1)[0])

最后,我打电话给下面的函数

getLsh(getSiftDescriptor('image path'))

我希望从同一图像获得相同的lsh散列值,

但是每当我打电话时,这个函数都会返回不同的值。

请,推荐python包获取lsh哈希值,就像这种情况或某种方式从opencv sift描述符中获取lsh哈希值

谢谢你的帮助

0 个答案:

没有答案