从OpenCV FeatureDetector检索功能类型



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

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

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

那么,给定类型为cv::Ptr<cv::FeatureDetector>的变量,是否可以检索功能的名称?在我的例子中是"SURF"

cv::Algorithm派生的类继承一个name()方法,该方法返回一个包含算法名称的字符串。在SURF检测器的情况下,name()返回字符串

功能2D.SURF

这是一种人类可读的形式。通常,此字符串的形式为算法类型实例名称,尽管极少数实例名称只有一个单词描述。对于任何特征检测算法,算法类型前缀始终为Feature2D。如果您需要一个精确的字符串匹配,您可以自己解析它。

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

相关内容

  • 没有找到相关文章

最新更新