[英]OpenCV - segfault instantiating surf feature detector
我在x86_64架構上使用OpenCV 2.4.6.1的C ++實現用於Ubuntu 12.10。 我一直在試驗一些特征探測器。 最近我在通過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檢測器,但我認為正確的處理方式是通過提供實例的工廠類。
我無法弄清楚為什么會發生這種情況,在Web上使用FeatureDetector工廠的幾個例子中,這種類型的探測器是完全合法的。 我嘗試為非自由模塊添加標題但得到了相同的結果。
我很感激任何見解。
call cv :: initModule_nonfree(); 在主要方面,在做任何事之前。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.