2013-07-22 39 views
4

我需要查找和匹配立体图像中的特征点。因此我想比较OpenCV 2.4.5中支持的不同特征检测算法。通过将“SURF”,“SIFT”等传递给函数。在OpenCV中使用FeatureDetector会导致访问冲突

的代码片段:

#include "opencv2/opencv.hpp" 
#include <opencv/highgui.h> 
#include <opencv2/nonfree/features2d.hpp> 

using namespace cv; 
using namespace std; 

... 

void DisparityAnalysis::detectKeyPoints(Mat1b leftImageGrey, Mat1b rightImageGrey, string algorithmName) 
{ 
    Ptr<FeatureDetector> detector = FeatureDetector::create(algorithmName); 
    detector->detect(leftImageGrey, keypoints_1); 
    detector->detect(rightImageGrey, keypoints_2); 
} 

错误:

Unhandled exception at 0x770b15de in DisparityAnalysis.exe: 0xC0000005: Access violation reading location 0x00000000. 

我已经搜索解决方案,发现这一个:Access violation reading in FeatureDetector OpenCV 2.4.5我已经认识不同的是,他们使用的简历:: initModule_nonfree()开头。但是,当将其复制到我的代码中时,它不会被编译,因为找不到标识符。 有什么建议吗?

回答

3

对于SIFT和SURF,你需要的非免费模块,即:

  • 包括 “opencv2 /非自由/ nonfree.hpp”

  • 呼叫CV :: initModule_nonfree()针对opencv_nonfree2.4.x.lib开始

  • 链接

+0

感谢@berak,因为... e“opencv2/nonfree/nonfree.hpp”缺失,cv :: initModule_nonfree()给出错误 – filla2003

相关问题