我正在尝试运行一个检测图像中特征的应用程序,但是当我运行以下代码时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)
有什么想法吗?
也许您尝试过使用 KD-Tree 或 KMeans?它们仅适用于 CV_32F 描述符,例如 SIFT 或 SURF。
对于像 Brief\ORB\FREAK 这样的二进制描述符,您必须使用 LSH 或层次聚类索引。或者简单的暴力搜索。
您可以自动管理它,例如像这样。
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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)