OpenCV:Flann匹配器崩溃

时间:2014-05-13 14:55:17

标签: opencv

我正在尝试运行检测图像功能的应用程序,但是当我运行BRISK功能代码,BRIEF描述符和FlannBased匹配器时,它会崩溃并说:

OpenCV Error: Unsupported format or combination of formats (type=0
) in buildIndex_, file /home/stefan/git_repos/opencv/modules/flann/src/miniflann.cpp, line 315
terminate called after throwing an instance of 'cv::Exception'
  what():  /home/stefan/git_repos/opencv/modules/flann/src/miniflann.cpp:315: error: (-210) type=0
 in function buildIndex_

Aborted (core dumped)

任何想法为什么?

1 个答案:

答案 0 :(得分:10)

您可能尝试使用KD-Tree或KMeans?它们仅适用于SIFT或SURF等CV_32F描述符。 对于像BRIEF \ ORB \ FREAK这样的二进制描述符,您必须使用LSH或Hierarchical clustering index。或简单的强力搜索。 您可以自动管理它,例如这样。

cv::flann::Index GenFLANNIndex(cv::Mat keys)
{
  switch (keys.type())
    {
    case CV_32F:
      {
        return  cv::flann::Index(keys,cv::flann::KDTreeIndexParams(4));
        break;
       }
    case CV_8U:
      {
        return cv::flann::Index(keys,cv::flann::HierarchicalClusteringIndexParams(),dist_type);
        break;
      }
    default:
      {
        return cv::flann::Index(keys,cv::flann::KDTreeIndexParams(4));
        break;
      }
    }

}
...
cv::flann::Index tree = GenFLANNIndex(descriptors);