OpenCV-segfault实例化冲浪特征检测器
OpenCV - segfault instantiating surf feature detector
我在x86_64体系结构上为Ubuntu 12.10使用OpenCV 2.4.6.1的C++实现。我一直在试验一些特征检测器。最近,我在通过FeatureDetector::create方法实例化SURF检测器时发现了一个问题。
我可以实例化并使用免费的检测器,如FAST或BRISK,方法是:
cv::Ptr<cv::FeatureDetector> detector = cv::FeatureDetector::create("FAST");
cv::Ptr<cv::FeatureDetector> detector = cv::FeatureDetector::create("BRISK");
但我在实例化并尝试使用非自由检测器(如SURF或SIFT)的早期获得了一个分段错误,方法是:
cv::Ptr<cv::FeatureDetector> detector = cv::FeatureDetector::create("SURF");
cv::Ptr<cv::FeatureDetector> detector = cv::FeatureDetector::create("SIFT");
尽管如此,我可以直接使用实现它们的具体类来实例化它们:
cv::Ptr<cv::FeatureDetector> detector = new cv::SurfFeatureDetector();
cv::Ptr<cv::FeatureDetector> detector = new cv::SiftFeatureDetector();
我需要在运行时热切换检测器/描述符,尽管我可以调整我的系统,在选择时实例化SURF和SIFT检测器,但我认为正确的方法是通过提供实例的Factory类。
我不明白为什么会发生这种情况,在网上的几个例子中,使用FeatureDetector工厂进行这种类型的检测器是完全合法的。我尝试为非自由模块添加标题,但得到了相同的结果。
如果有任何见解,我将不胜感激。
调用cv::initModule_nonfree();总的来说,在做任何其他事情之前。
相关文章:
- 用于检测函数类型是否为否的特征
- 在不使用经过训练的模型的情况下检测/分割面部和面部特征:openCV C++
- 拼接图像无法检测常见特征点
- 创建特征以检测C++中的闭包类型
- 我们应该认为评估特征检测,描述和匹配的主要速率和值是多少
- 怎么来了?在特征中未检测到别名
- 为什么这C++检测T型是否具有空运算符(EDT const&)失败的特征?
- 使用OpenCV Cuda ORB特征检测器
- 特征检测部门的Sfinae问题
- 面部特征检测-眼角、眉毛
- Dev C 中的Flandmark库,用于特征点检测
- 编译时解决方案以检测特征对象没有eval()成员
- XML文件中Haar级联正面人脸检测的特征向量大小是多少
- STASM人脸特征检测的工作原理
- 特征检测算法的实现
- 如何在Visual c++ 9中使用类型特征检测按位移动类型?
- 城市环境中特征检测的最佳算法- OpenCV
- 在openv中使用GridAdaptedFeatureDetector进行特征检测
- C++ - 使用 ORB 进行 OpenCV 特征检测
- 如何在opencv中制作自己的特征检测方法