c – OpenCV 3:可用的FeatureDetector :: create()和Descriptor
编辑:我正在查看错误的OpenCV2代码示例,OpenCV3中没有FeatureDetector :: create – 这让我很困惑.
嘿,他是OpenCV的新手,通过拉开其他人的C代码来学习. 我想尝试所有可用的选项: detector = FeatureDetector::create(str_detector); descriptor = DescriptorExtractor::create(str_descriptor); 目前str_detector是FAST,str_descriptor是BRISK 我无法找到可用的探测器和描述符. 有没有办法输出所有当前可用选项的列表? (我刚刚在新的linux安装上从github构建了最新的opencv opencv-contrib) 我在这里找到了第三方文件列表https://github.com/Itseez/opencv_contrib/tree/master/modules/xfeatures2d/src – 我认为这些是第三个描述符和检测器,因为在某些文件中提到了这些词.但是,拥有一个当前编译/可用选项的完整列表会很不错. 谢谢! 我自己试着找到答案,然后编辑: >在modules / features2d / include / opencv2 / features2d.hpp中找到typedef Feature2D FeatureDetector和typedef Feature2D DescriptorExtractor > BRISK >和来自贡献代码(https://github.com/Itseez/opencv_contrib/blob/master/modules/xfeatures2d/include/opencv2/xfeatures2d.hpp) > FREAK >和来自nonfree contrib code(https://github.com/Itseez/opencv_contrib/blob/master/modules/xfeatures2d/include/opencv2/xfeatures2d/nonfree.hpp) > SIFT >仍然不确定上述哪些可以/应该用于FeatureDetector或DescriptorExtractor 解决方法
您还有OpenCV文档,其中包含OpenCV功能列表:
> OpenCV 3.1 documentation 如果该功能仅在关键点检测或描述符提取中可用,或者两者兼有,我要知道的是阅读文档中链接的相应文章.它还允许对功能进行简要描述(例如,如果它是二进制描述符,主要优点等) 其他解决方案是测试每个功能: >如果对detect()的调用没问题(没有抛出异常)==>特征检测 也许存在更优化的解决方案…… 无论如何,据我所知(如果我错了,请随时纠正我): > BRISK:探测器描述符 同样使用OpenCV 3.1,代码是: cv::Ptr<cv::Feature2D> kaze = cv::KAZE::create(); std::vector<cv::KeyPoint> kpts; cv::Mat descriptors; kaze->detect(matImg,kpts); kaze->compute(matImg,kpts,descriptors); kaze->detectAndCompute(matImg,cv::noArray(),descriptors); cv::Ptr<cv::Feature2D> daisy = cv::xfeatures2d::DAISY::create(); //Contrib 要知道要使用哪种规范类型: std::cout << "AKAZE: " << akaze->descriptorType() << " ; CV_8U=" << CV_8U << std::endl; std::cout << "AKAZE: " << akaze->defaultNorm() << " ; NORM_HAMMING=" << cv::NORM_HAMMING << std::endl; 最后,为什么
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |