局部敏感哈希算法是否只与opencv / flann中的二进制描述符兼容?

时间:2013-03-07 07:28:21

标签: opencv indexing sift surf

我正在尝试在opencv 2.4.4中使用flann中的本地敏感哈希算法。这是我的代码

Ptr<IplImage> cluster_image = cvLoadImage("C:\\Users\\Administrator\\Pictures\\1.jpg");
vector<KeyPoint> cluster_keypoint;
Mat des;

description_detect(cluster_image,cluster_keypoint,des,SIFT_DESCRIPTION);
//My function to extract the sift feature from image.
//Descriptions are stored at variable des.

flann::Index my_index(des, flann::LshIndexParams(10, 10, 2));

运行此代码以通过lsh算法构建flann的索引。代码断言

“Opencv错误,不支持的格式或格式组合type = 5”

我检查miniflann.cpp中的代码。看起来flann中的局部敏感哈希算法只与CV_8U Mat类型兼容,而不是由sift生成的CV_32F。

但是,从ORB,Brief,BRISK,FREAK检测到的其他二进制描述符可以生成CV_8U Mat类型。

所以我的问题是:本地敏感哈希算法是否只与opencv中的二进制描述符兼容?

1 个答案:

答案 0 :(得分:4)

是:哈希函数仅针对二进制描述符(即可以表示为unsigned char数组的描述符)实现。

请参阅此答案以获取更多详细信息:Binary features and Locality Sensitive Hashing (LSH)