簡體   English   中英

OpenCV - segfault實例化沖浪特征探測器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM