为什么SIFT和SURF探测器会崩溃?
using namespace std;
using namespace cv;
int main(int argc, char *argv[])
{
Mat image = imread("TestImage.jpg");
// Create smart pointer for SIFT feature detector.
Ptr<FeatureDetector> featureDetector = FeatureDetector::create("SIFT");
vector<KeyPoint> keypoints;
// Detect the keypoints
featureDetector->detect(image, keypoints); // here crash
// ...
}
Run Code Online (Sandbox Code Playgroud)
错误是Segmentation fault (core dumped).我使用OpenCV 2.4.8,gcc 4.9和Ubuntu.如果我使用其他类型的功能,它会正常运行.我错过了什么?
rem*_*emi 10
你试过电话initModule_nonfree()吗?
#include <opencv2/nonfree/nonfree.hpp>
using namespace std;
using namespace cv;
int main(int argc, char *argv[])
{
initModule_nonfree();
Mat image = imread("TestImage.jpg");
// Create smart pointer for SIFT feature detector.
Ptr<FeatureDetector> featureDetector = FeatureDetector::create("SIFT");
vector<KeyPoint> keypoints;
// Detect the keypoints
featureDetector->detect(image, keypoints); // here crash
// ...
}
Run Code Online (Sandbox Code Playgroud)
另外,你没有检查指针featureDetector,它可能是null(因为你还没有调用initModule).
| 归档时间: |
|
| 查看次数: |
2300 次 |
| 最近记录: |