从OpenCV FeatureDetector中检索特征类型

4
在OpenCV中,非常常见的是通过提供特征名称来创建cv :: FeatureDetector
cv::Ptr<cv::FeatureDetector> detector = cv::FeatureDetector::create("SURF");

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

然后,给定一个类型为cv::Ptr<cv::FeatureDetector>的变量,是否可以检索特征的名称?在我的示例中,它是"SURF"

1个回答

7
继承自 cv::Algorithm 的类都继承了一个返回包含算法名称的字符串的 name() 方法。对于您的 SURF 检测器,name() 返回以下字符串:

Feature2D.SURF

这是一个可读性良好的形式。通常,该字符串采用 算法类型 . 实例名称 的形式,只有极少数情况下会有单个词描述。对于任何特征检测算法,算法类型 前缀始终为 Feature2D。如果需要精确匹配字符串,则可以自行解析它。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接