从OpenCV FeatureDetector中检索要素类型

时间:2014-04-21 17:45:50

标签: c++ opencv

在OpenCV中,通过提供功能名称来创建cv::FeatureDetector非常常见:

cv::Ptr<cv::FeatureDetector> detector = cv::FeatureDetector::create("SURF");

这是一个工厂模式,是cv::FeatureDetector一个抽象类。

然后,给定cv::Ptr<cv::FeatureDetector>类型的变量,是否可以检索要素的名称?在我的例子中是"SURF"

1 个答案:

答案 0 :(得分:7)

cv::Algorithm派生的类继承了name()方法,该方法返回包含算法名称的字符串。对于SURF检测器,name()返回字符串

  

Feature2D.SURF

这是一种人类可读的形式。通常,此字符串的格式为 algorithm-type instance-name ,但只有少数只有单字描述。对于任何特征检测算法,算法类型前缀始终为Feature2D。如果您需要精确的字符串匹配,可以自己解析。

auto surf = cv::FeatureDetector::create("SURF");
auto n = surf->name();
std::cout << n << std::endl; // Prints "Feature2D.SURF", sans quotes