2013-03-29 4 views
-4

Я использую OpenCV 2,44 и Visual Studio C++ 2010OpenCV ошибка SURF extractor.compute

Когда я компилирую этот

#include <opencv2/imgproc/imgproc_c.h> 
#include <stdio.h> 
#include <math.h> 
#include <opencv/highgui.h> 
#include <opencv/cv.h> 
#include <opencv2/features2d/features2d.hpp> 
#include <opencv2/calib3d/calib3d.hpp> 
#include <opencv2/core/core.hpp> 
#include <opencv2/nonfree/features2d.hpp> 
#include <opencv2/legacy/legacy.hpp> 
using namespace cv; 


void main() 
{ 

    Mat img1 = imread("hh.jpg", CV_LOAD_IMAGE_GRAYSCALE); 
    Mat img2 = imread("hh.jpg", CV_LOAD_IMAGE_GRAYSCALE); 

    // detecting keypoints 
    FastFeatureDetector detector(15); 
    vector<KeyPoint> keypoints1; 
    detector.detect(img1, keypoints1); 

    // computing descriptors 
    SurfDescriptorExtractor extractor; 
    Mat descriptors1; 
    extractor.compute(img1, keypoints1, descriptors1); 

когда я запускаю код я получаю Необработанное исключение при 0x580f375b в prj.exe: 0xC0000005 : Место считывания нарушения доступа 0x001f7014. ошибка в экстракторе

Я использую этот учебник link

ответ

0

Это выглядит, что вы забыли инициализировать несвободный модуль. Попробуйте вызвать соответствующую функцию перед использованием SurfDescriptorExtractor:

#include <opencv2/nonfree/nonfree.hpp> 
... 
cv::initModule_nonfree(); 
Смежные вопросы