我正在尝试在 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 错误,不支持的格式或格式组合类型 = 5”
我检查 miniflann.cpp 中的代码。似乎 flann 中的局部敏感散列算法仅与 CV_8U Mat 类型兼容,除了由 sift 生成的 CV_32F。
但是,从 ORB、Brief、BRISK、FREAK 检测到的其他二进制描述符可以产生 CV_8U Mat 类型。
所以我的问题是:局部敏感散列算法是否只与opencv中的二进制描述符兼容?