Ошибка OpenCV SURF extractor.compute

Я использую OpenCV 2.44 и Visual Studio C ++ 2010

Когда я собираю это

#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.
ошибка в экстракторе

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

-4

Решение

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

#include <opencv2/nonfree/nonfree.hpp>
...
cv::initModule_nonfree();
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]