Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在OpenCV中使用FeatureDetector会导致访问冲突_C++_Opencv_Feature Detection - Fatal编程技术网

C++ 在OpenCV中使用FeatureDetector会导致访问冲突

C++ 在OpenCV中使用FeatureDetector会导致访问冲突,c++,opencv,feature-detection,C++,Opencv,Feature Detection,我需要找到并匹配立体图像中的特征点。因此,我想比较OpenCV 2.4.5中支持的不同特征检测算法。通过向函数传递“SURF”、“SIFT”等 代码片段: #include "opencv2/opencv.hpp" #include <opencv/highgui.h> #include <opencv2/nonfree/features2d.hpp> using namespace cv; using namespace std; ... void Dispari

我需要找到并匹配立体图像中的特征点。因此,我想比较OpenCV 2.4.5中支持的不同特征检测算法。通过向函数传递“SURF”、“SIFT”等

代码片段:

#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);
}
我已经搜索了解决方案并找到了这个:我认识到的区别是,它们在开始时使用cv::initModule_nonfree()。但是当将它复制到我的代码中时,它不会编译,因为找不到标识符。
有什么建议吗?

对于SIFT和SURF,您需要非自由模块,即:

  • 包括“opencv2/nonfree/nonfree.hpp”

  • 在开头调用cv::initModule_nonfree()

  • 针对opencv_nonfree2.4.x.lib的链接

谢谢@berak,因为缺少“opencv2/nonfree/nonfree.hpp”,cv::initModule_nonfree()给出了一个错误
Unhandled exception at 0x770b15de in DisparityAnalysis.exe: 0xC0000005: Access violation reading location 0x00000000.