Я пытаюсь следовать этот урок для обнаружения объекта, но я застрял в начале.
До сих пор мой код такой:
#include <stdio.h>
#include <stdlib.h>
#include <opencv2/opencv.hpp>
#include <fstream>
#include <iostream>
#include <string>
#include <dirent.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
using namespace cv;
using namespace std;
int main() {
Ptr<DescriptorExtractor> extractor = DescriptorExtractor::create("SURF");
//Mat training_descriptors(1, extractor->descriptorSize(), extractor->descriptorType());
extractor->descriptorSize();
return 0;
}
Следующая строка extractor->descriptorSize();
дает ошибку сегментации (ядро сброшено), и я не знаю почему. Есть ли у вас какие-либо идеи?
Я обнаружил, что несвободный модуль OpenCV не был установлен. После установки я включил несвободную библиотеку #include <opencv2/nonfree/nonfree.hpp>
а потом позвонил cv::initModule_nonfree();
, Проблема решена.