我有以下代碼特徵檢測與OpenCV的失敗,賽格故障
cv::initModule_nonfree();
std::vector<cv::KeyPoint> keypoints_1;
cv::Ptr<cv::FeatureDetector> detector = cv::FeatureDetector::create("SURF");
cv::Mat image = cv::imread("someFileNameHere",cv::IMREAD_COLOR);
// image.data is true, cv::imshow() dispalys the image
detector->detect(image, keypoints_1); // seg fault here
什麼可以賽格故障的原因是什麼?我試圖與希望圖書館有足夠的元數據,在其上運行gdb的,但堆棧在通話結束後,以detect()
這不是'imread'?你的代碼中包含一個文件名?我認爲,如果你沒有提供imread的文件名,openCV就會失敗。另一個原因可能是你需要'cv :: detect'而不是'detect'。 – mprat
@mprat Sry基因,我是不明確的,有一個文件名,我還以爲說的是image.data是真的將意味着...... –
檢查,如果你的檢測是有效的:'detector.empty()'(是的,用一個點,而不是指針) – berak